我有一个网络服务,通过让用户javascript嵌入他们的代码来工作。用户还可以将该代码放在其他网站上以使其在那里工作。但是,我还需要允许用户创建JS不应该运行的站点黑名单。例如,竞争对手或不适当的网站。
有没有办法检查我们的JS文件的加载位置,并基于每个帐户阻止加载或中断功能?
编辑:javascript在网站上加载iframe,因此另一种解决方案是以某种方式阻止某些域从我们的服务器加载iframe,或者向该iframe提供不同的内容
编辑2:我们也试图避免使用JS进行此操作,因为可以下载并修改它以通过块
答案 0 :(得分:2)
检查网页的网址
是的,javascript文件在开始执行时可以检查window.url并查看主文档的url是否正常。
要查看脚本的加载位置
它也可以通过dom,查找引入javascript文件本身的脚本节点,并查看JS的加载位置。
<强>然而强>
任何人都可以将javascript加载到文本编辑器中,然后更改它以消除测试,然后在自己的服务器上托管修改后的JS。混淆或最小化JS可以减慢某人的速度,但默默无闻是不安全的。
答案 1 :(得分:1)
你可以做的一件事就是让javascript加载另一个javascript文件。您在给定URL的服务器上提供服务。这里的技巧是该url不会转到文件,而是转到将返回javascript文件的服务器端点。你有端点检查该用户的路由,并决定它是否会返回你想要工作的javascript或某种错误的javascript。
此博客展示了如何在php中进行此操作。dynamic-javascript-with-php