jfr*_*d00 13 javascript json eval
我知道JSON.parse()可以防止攻击者将javascript注入到响应中,因为JSON解析器只是一个文本解析器,而不是脚本解析器所以请不要关闭这个是关于这个问题的所有其他问题的重复.这是一个不同的问题.
如果攻击者可以劫持你的Ajax调用并将javascript放入Ajax调用,那么他们是否有可能劫持你的实际网页并将任意javascript放入你的页面中,他们可以完成同样的攻击?
当然,通过使用JSON.parse()而不是eval(),你没有什么可失去的(除非你的环境中还没有JSON解析器,并且必须添加更多代码才能获得),但是它真的是什么情况呢如果您的网页由与ajax呼叫相同的主机提供服务,请增加安全性吗?
小智 12
是的,这真的更安全.您不采取的每项预防措施都是一组您无法阻止的潜在攻击.
攻击者可能无法控制服务器的输出而无法完全更改它.没有人认为这是一个神奇的子弹,但它可能更快,你不会创造一个潜在的漏洞,可能会回来并伤害你.
也许运行你的服务器的人有一个糟糕的一天,并通过连接未经过验证的用户输入做一些愚蠢的事情来构建JSON:
<?php
print '{"foo": ' . $_GET['bar'] . '}';
?>
Run Code Online (Sandbox Code Playgroud)
如果你正在使用JSON.parse
,他们能做的最糟糕的事情就是把一个大物体塞进你的记忆中.如果你正在使用eval
它们可以劫持一切.