1

我有一个网络服务,它通过为用户提供 javascript 来嵌入他们的代码。用户还可以将该代码放在其他站点上,以使其在那里工作。但是,我还需要允许用户创建 JS 不应在其上运行的站点的黑名单。例如,竞争对手或不适当的网站。

有没有办法检查我们的 JS 文件是从哪里加载的,并在每个帐户的基础上阻止加载或中断功能?

编辑:javascript 在网站上加载 iframe,因此另一种解决方案是以某种方式阻止某些域从我们的服务器加载 iframe,或者向该 iframe 提供不同的内容

编辑 2:我们也试图避免使用 JS 执行此操作,因为它可以被下载和修改以通过块

4

2 回答 2

2

检查页面的url

是的,javascript 文件在开始执行时可以检查 window.url 并查看主文档的 url 是否正常。

查看脚本的加载位置

它还可以通过 dom,寻找引入 javascript 文件本身的脚本节点,并查看 JS 是从哪里加载的。

然而

任何人都可以将 javascript 加载到文本编辑器中,然后对其进行更改以消除测试,然后将修改后的 JS 托管在自己的服务器上。混淆或最小化 JS 可能会减慢某人的速度,但晦涩难懂并不是安全性。

于 2012-07-27T01:33:37.127 回答
1

您可以做的一件事是让 javascript 加载另一个 javascript 文件。您在给定的 url 从服务器提供服务。这里的诀窍是该 url 不会转到文件,而是转到将返回 javascript 文件的服务器端点。您让该端点检查该用户的路由,并决定它是否会返回您想要工作的 javascript 或某种类型的错误 javascript。

这个博客展示了如何在 php 中做到这一点。动态-javascript-with-php

于 2012-07-27T01:48:42.543 回答