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