我刚刚浏览的一个网站 (cheezburger.com) 显然存在漏洞,因为有人注入(inject)了类似 <script>document.location.href="http://net-cheezburger.cu.cc/"</script>
的行。到消息中。 Firefox 将自身重定向到那里,并且 X-Frame-Options 停止了取景,导致屏幕空白。
除了向 cheezburger 网站上的 document.location.href 添加 CAPS 策略之外,还有其他方法可以阻止脚本在 Firefox 中运行吗?这也阻止了合法的改变。 现在,我只是向 Greasemonkey 发出警报,脚本位于错误的位置,因此如果他们尝试其他恶意脚本,我会立即知道发生了什么。
我只想进行临时修复,直到网站本身得到修复。
我想知道是否有方法以编程方式拦截该脚本或重定向。如果我理解正确的话,您无法使用 Greasemonkey 更改内联脚本,但是还有其他选择吗?
最佳答案
由于您使用的是 Firefox(一种现代浏览器),因此您可以使用 Object.freeze
将 location
对象变为只读:
Object.freeze(document.location);
document.location.href = "http://google.com";
// No navigation happens
console.log(document.location.href);
// => "http://stackoverflow.com/questions/22290948/stopping-script-from-changeing-document-location-href"
关于javascript - 阻止脚本更改 document.location.href?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22290948/