阻止脚本更改document.location.href?

时间:2014-03-10 02:06:41

标签: javascript jquery xss

我刚浏览过的网站(cheezburger.com)显然存在漏洞,因为有人在邮件中注入了<script>document.location.href="http://net-cheezburger.cu.cc/"</script>这样的行。 Firefox重定向到那里,X-Frame-Options停止了框架,导致屏幕空白。

是否有其他方法可以阻止脚本在Firefox中工作,而不是在cheezburger网站上向document.location.href添加CAPS策略?这也阻止了合法的变化。 现在我只是告诉Greasemonkey一个脚本在错误的地方,所以如果他们尝试其他恶意脚本,我立即知道发生了什么。

我想在网站本身修复之前暂时修复。

我想知道有没有办法以编程方式拦截该脚本或重定向。如果我已经正确理解你不能用Greasemonkey更改内联脚本但是还有其他选项吗?

1 个答案:

答案 0 :(得分:10)

由于您使用的是firefox(现代浏览器),因此您可以使用Object.freezelocation对象变为只读:

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"