当前位置:  开发笔记 > 编程语言 > 正文

为什么不用eval()JSON?

如何解决《为什么不用eval()JSON?》经验,为你挑选了2个好方法。

据我所知eval(),由于安全性,JavaScript中的JSON对象被认为是不好的做法.如果JSON来自另一台服务器,我可以理解这种担忧.

但是如果JSON是由我自己的服务器提供的并且是使用PHP创建的json_encode(让我们假设它没有错误),那么简单地用于eval()读取JS中的JSON 是否合法,或者是否存在我目前无法想到的任何安全问题?

我真的不想处理动态加载JSON解析器,并且很乐意简单地使用eval().

PS:我显然会使用本机JSON对象,如果它可用,但想要回归到eval()IE/Opera.



1> Matthew Vine..:

在你的场景中,问题变成了,PHP从哪里获取javascript来执行?这个频道是否安全,并且没有潜在的用户操纵?如果您不直接控制该频道怎么办?


@nikic:想想中间人攻击.

2> zzzzBov..:

您可以通过多种方式破坏您的安全性.

理论上,中间人攻击可以改变传递给客户端的数据内容.

您的服务器流量可以在其他地方截获,并且可以提供不同的内容(与MIM攻击不完全相同)

您的服务器可能会受到攻击,数据源可能会被篡改.

这些只是简单的例子.XSS很讨厌.

"一盎司的预防值得一磅治疗"

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有