JSON安全最佳实践?

15 浏览
0 Comments

JSON安全最佳实践?

在研究“JSON vs XML”问题时,我遇到了这个问题。其中一个偏好JSON的原因是其在Javascript中的转换容易性,特别是使用eval()函数。但是从安全角度来看,这立刻引起了我的关注。

于是,我开始研究JSON的安全方面并发现了这篇博客文章,它解释了“JSON并不像人们想象中那样安全”。其中有一段内容引起了我的注意:

“更新:如果你完全按照规范使用JSON,那么顶层应该只有对象,而不是数组、数字或字符串。因为JSON对象无法通过eval()函数进行解析,JavaScript解释器会将其视为一个代码块而不是一个对象。这在很大程度上可以防止这些攻击,但最好还是使用不可预测的URL来保护安全数据。”

好的,这是一个很好的起点:JSON顶层的对象应该始终是对象,而不是数组、数字或字符串。这对我来说听起来是一个好的规则。

在JSON和AJAX相关的安全性方面,还有其他需要注意的事项吗?

上述引文的最后一部分提到了不可预测的URL。有人对此有更多信息吗,特别是如何在PHP中实现?我在Java方面的经验比在PHP方面更丰富,而在Java中,这很容易(你可以将一系列URL映射到单个Servlet),而我所做的所有PHP都是将一个URL映射到PHP脚本。

另外,如何使用不可预测的URL来提高安全性?

0