微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/ajax/153674.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐