我有JavaScript我想限制它在某些域中运行。例如,我有
javascript:(a=(b=document).createElement('script')).src='https://hello.com/js.php',b.body.appendChild(a);void(0)
我上面的代码只适用于http://helloworld.com。如果其他人试图通过https://hello.com/js.php访问我的JS文件,他们就不应该在里面看到我的JavaScript。
或者你能推荐一些无法去混淆的混淆器吗?
答案 0 :(得分:2)
任何人都可以访问您的JS,因为它的输出是公共网页。
您的设计在某处有错误。
答案 1 :(得分:1)
如果您不希望其他域访问您的JS文件,则可以阻止通过.htaccess
文件进行热链接:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.js$ http://mysite.com/no-hotlinks.js [L]
您可以通过添加更多规则来允许许多域访问JS文件:
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?anothersite\.com/ [NC]
但是,如果您想阻止从Web浏览器访问,则无法执行此操作。
答案 2 :(得分:0)
您可以使用PHP(或任何其他服务器端语言)来提供JS文件。
因此,您不会调用myfile.js
而是调用generateJS.php?val=15
,然后您将有一个数组将val与正确的文件名相关联。
从外面看不到实际的JS文件名,您可以在PHP中检查域名(虽然标题可以被欺骗)。
显然,人们仍然可以通过这种方式获得JS的来源,但是,如果你真的认为这是一个问题,你就不应该首先使用JS。