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

标签 javascript coldfusion

我正在尝试开发一个 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/

相关文章:

google-api - ColdFusion Google OAuth 获取访问 token 连接失败

javascript - JSON 源映射破坏了 Webstorm 调试过程中的解析器

javascript - 如何将使用 charCodeAt 的 javascript 函数转换为 Coldfusion?

javascript - jQuery 解析巨大的响应失败

javascript - 如何在ajax调用之间传递参数

http - 登录后重定向和 session 数据传输到另一个服务器/域

coldfusion - 通过 json 和结构中的 "*"从维基百科提取数据导致 Coldfusion 中出现问题

excel - ColdFusion XLS "Export"和字符编码

javascript - 使用 jQuery 触发 keyup 事件

javascript - 在页面向下滚动时将 pageYOffset 值添加到 div 的位置