gpt4 book ai didi

javascript - 从链接脚本 CFM 文件中获取域

转载 作者:行者123 更新时间:2023-11-28 19:42:29 25 4
gpt4 key购买 nike

我正在尝试开发一个 1 页的迷你应用程序,可以使用 2 行代码进行部署。

<div id="app_wrapper"></div> 
<script src="http://mydomain.com/js/loader.cfm?id=12"></script>

这将位于不同的域上,我们称之为 http://theirdomain.com/client.html

然后在加载程序文件中,我检查域是否与设置中的域之一相同,因此非付费者不能仅复制这两行并在其网站上运行此迷你应用程序而无需付费。

<cfset refererDomain = reReplace(CGI.SERVER_NAME,"^\w+://([^\/:]+)[\w\W]*$","\1","one") />
<cfif (refererDomain neq "") and (refererDomain eq GetWBSettings.vchrDomain1 or refererDomain eq GetWBSettings.vchrDomain2 or refererDomain eq GetWBSettings.vchrDomain3 or
refererDomain eq GetWBSettings.vchrDomain4 or refererDomain eq GetWBSettings.vchrDomain5) and GetWBSettings.blnActive eq 1>

其中 GetWBSettings.vchrDomain1、2、3、4 和 5 是授权域(每个帐户最多允许 5 个域),GetWBSettings.blnActive 是 bool 值,客户端是否处于事件状态。

我遇到了一个问题,但不知道如何解决。 CGI.SERVER_NAME 正在输出 http://mydomain.com而不是http://theirdomain.com 。我还尝试了 CGI.HTTP_REFERRER,但在本例中,输出的是空字符串。

我在考虑的另一件事是,由于我在脚本中,也许我可以通过 javascript 的 location.host 获取它,并以某种方式将其传递到我的 cfif 语句

我正在使用 Coldfusion 9

最佳答案

<script src="http://mydomain.com/js/loader.cfm?id=12"></script>

CFM 正在您的域中运行,因此 CGI.SERVER_NAME 是您自己的服务器。 CGI.HTTP_REFERRER 可以被欺骗,所以无论如何它都不可靠。

您可能会考虑向他们提供一个在其网站上运行的 JavaScript 文件,该文件向您网站上的 API 发出请求。该 API 需要身份验证 token 并返回您的 CFM 当前返回的内容。

您可以通过类似的方式实现它:

https://developers.google.com/api-client-library/javascript/features/authentication#SimpleaccessusingtheAPIkey

gapi.client.setApiKey(YOUR API KEY);

然后,您可以在对 API 的请求中包含来自该服务器的数据,这可以帮助您阻止非付费请求使用复制的 API key 访问您的 API。

关于javascript - 从链接脚本 CFM 文件中获取域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24833551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com