Javascript json劫持是否与IE相关>;10或铬合金>;30?

Javascript json劫持是否与IE相关>;10或铬合金>;30?,javascript,arrays,json,security,Javascript,Arrays,Json,Security,OWASP建议使用对象包装json响应,而不要返回直接数组,例如: [{"id":5}] 这真的还是个问题吗?这能被黑客攻击吗? 用Chrome、IE和FF尝试它,我无法“破解”或利用它 示例代码: <html> <head> <script type="text/javascript"> Object.defineProperty(window,'id',{set: function(obj) {alert(obj

OWASP建议使用对象包装json响应,而不要返回直接数组,例如:

[{"id":5}]
这真的还是个问题吗?这能被黑客攻击吗?
Chrome
IE
FF
尝试它,我无法“破解”或利用它

示例代码:

<html>
    <head>
        <script type="text/javascript"> 
        Object.defineProperty(window,'id',{set: function(obj) {alert(obj);});
        </script> 
    </head>
    <body> 
        <script defer="defer" src="http://example.com/Home/AdminBalances"></script> 
    </body> 
</html>

defineProperty(window,'id',{set:function(obj){alert(obj);});
无论我如何调用它,我都无法调用
defineProperty
中的代码,除非我直接在窗口本身上设置id对象


如果这仍然是可能的,您可以提供示例代码吗?

要实现这一点,您应该看看。例如,Firefox 3

现代浏览器似乎不易受到这种攻击。-它们是否值得是一个意见问题。目前,不,它们不值得。但是,如果一个新的、易受攻击的浏览器变得流行,那么很好-你的防御可以挽救一个用户和他们的数据不被窃取-但仅仅是因为浏览器中存在漏洞e过去,并不意味着未来会再次发生。未来同样可能存在一个不同的、未知的漏洞


大多数现代浏览器都会自动更新,因此如果出现漏洞,通常会很快修补。防御起来并不费什么力气,因此最终由开发人员决定成本是否包括潜在的风险敞口。

您需要一个易受攻击的浏览器(如Firefox 3.0.11)当这是一个重要的意见。谢谢,所以我看到在旧浏览器(非常旧…)这可能是一个问题,但这是过去两年的浏览器中的问题吗?需要更多帮助吗?如果需要,我会更新我的答案。谢谢,只是我想知道这是过去两年的浏览器中的问题还是已经解决了。感谢您提供的详细信息,这正是问题所在-是否值得为不存在的漏洞进行防御?@Tal:Proba如果您不希望用户在您的系统上使用旧浏览器,则可能不会。但是,在需要高安全级别的系统(例如银行网站)上,这可能是有益的,因为暴露成本非常高,实施此控制的成本非常低。