javascript – 当网页和ajax调用来自同一个服务器时,JSON.parse()是否比eval()更安全?

前端之家收集整理的这篇文章主要介绍了javascript – 当网页和ajax调用来自同一个服务器时,JSON.parse()是否比eval()更安全?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我得到那个 JSON.parse()阻止攻击者注入 JavaScript到响应,因为JSON解析器只是一个文本解析器,而不是一个脚本解析器,所以请不要关闭这是所有其他问题的谈话.这是一个不同的问题.

如果攻击者可以劫持您的Ajax调用,并将JavaScript放入Ajax调用中,那么它们并不只是可能劫持您的实际网页并将任意JavaScript放入您的页面,从而可以完成相同的攻击?

当然,通过使用JSON.parse()而不是eval(),你没有什么可失去的(除非你的环境中没有JSON解析器,并且必须添加更多的代码才能获得),但是真正的情况呢如果您的网页由与您的ajax通话相同的主机提供服务,请添加安全性?

解决方法

是的,这真的比较安全.您不采取的一切预防措施都是一套潜在的漏洞,您不能防止.

攻击者可能能够对服务器的输出进行一些控制,而无需完全更改.没有人建议这是一个神奇的子弹,但它可能更快,你不会创造一个潜在的漏洞,可以回来并伤害你.

也许有人在运行你的服务器有一个糟糕的一天,并做一些愚蠢像构建JSON通过连接未经过化身的用户输入:

<?PHP
    print '{"foo": ' . $_GET['bar'] . '}';
?>

如果您使用JSON.parse,那么他们可以做的最糟糕的事情就是将大量的对象拖入你的内存.如果你使用eval,他们可以劫持所有的东西.

原文链接:https://www.f2er.com/ajax/153674.html

猜你在找的Ajax相关文章