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

标签 javascript jquery xss

我刚刚浏览的一个网站 (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.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"

关于javascript - 阻止脚本更改 document.location.href?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22290948/

相关文章:

javascript - React js 状态未在表单上设置

jquery - 在 Jquery Image Slider 的初始页面加载时隐藏特定图像

javascript - 在 IE 中抑制 "Done, but with errors on page"

asp.net-mvc - 修复 ASP.Net MVC 中的跨站点脚本(反射(reflect))

javascript - 将数组的数组转换为对象的数组

javascript - 仅在 Javascript forEach/map 之后执行代码

javascript - 无法在 JQuery 中为 GET 请求动态使用 id 元素

jquery - css 缩放(-webkit-transform)div 及其与 jquery ui 的子级可拖动移动在拖动过程中与光标不同

javascript - .html() 函数的 Jquery 替换不会尝试在 Redactor imperavi - Xss 漏洞上重写 html

javascript - 在javascript中的字符串文字之间使用破折号