Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阻止JS在某些域上加载_Javascript - Fatal编程技术网

Javascript 阻止JS在某些域上加载

Javascript 阻止JS在某些域上加载,javascript,Javascript,我有一个web服务,它通过向用户提供javascript来嵌入他们的代码。用户还可以将该代码放在其他网站上,使其在那里工作。然而,我还需要允许用户创建一个JS不应该运行的站点黑名单。例如,竞争对手或不合适的网站 有没有办法检查我们的JS文件从何处加载,并根据每个帐户阻止加载或中断功能 编辑:javascript在站点上加载iframe,因此另一种解决方案是以某种方式阻止某些域从我们的服务器加载iframe,或者向该iframe提供不同的内容 编辑2:我们还试图避免从JS中执行此操作,因为可以下载

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

有没有办法检查我们的JS文件从何处加载,并根据每个帐户阻止加载或中断功能

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


编辑2:我们还试图避免从JS中执行此操作,因为可以下载和修改JS以通过块检查页面的url

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

查看脚本从何处加载

它还可以遍历dom,查找引入javascript文件本身的脚本节点,并查看JS的加载位置

但是


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

可以做的一件事是让javascript加载另一个javascript文件。从服务器以给定的url提供服务。这里的诀窍是,该url不会指向文件,而是指向将返回javascript文件的服务器端点。最后,您将对该用户的路由进行端点检查,并决定它是否将返回您想要使用的javascript或某种错误javascript


本博客展示了如何在php中实现这一点。

是的,我们正试图避免这种警告。我将更新问题以澄清这一点。通常不难绕过这一点:如果坏人可以运行“正确”的url/页面并使其工作(JS提供给页面),那么坏人可以使用Firebug或等效工具将下载的JS存储在本地文件中以供分析、稍后使用等。记住,最终,您需要向页面提供JS。所以任何有权访问该页面的人都可以使用调试器来存储JS。你是对的。您永远不能阻止用户窗体访问浏览器中的内容。不过你可以让它变得更难。