在研究 JSON vs XML的问题时,我偶然发现了 这个问题。现在,选择 JSON 的原因之一被列为易于转换的 Javascript,即与 eval()
。从安全的角度来看,这立刻让我觉得有潜在的问题。
因此,我开始对 JSON 的安全性方面进行一些研究,并在这篇博客文章中讨论了 JSON 并不像人们想象的那样安全如何。这部分引人注目:
更新: 如果您正在做 JSON 100% 那么你只有 在顶层的物体。数组, 字符串、数字等都是 然后,JSON 对象将失败 Eval () ,因为 JavaScript 翻译会认为它在看 一个块而不是一个物体 对于防范 这些攻击,但这仍然是最好的 以保护您的安全数据 不可预测的网址。
好的,这是一个很好的开始规则: 顶层的 JSON 对象应该始终是对象,而不是数组、数字或字符串。听起来是个不错的规矩。
当涉及到 JSON 和 AJAX 相关的安全性时,还有什么需要做或避免的事情吗?
上述引用的最后一部分提到了不可预测的 URL。有人有更多关于这方面的信息吗,特别是在 PHP 中是如何做到这一点的?我在 Java 方面比 PHP 更有经验,而且 Java 很简单(因为您可以将所有 URL 映射到单个 servlet) ,而我所做的所有 PHP 都将单个 URL 映射到 PHP 脚本。
另外,如何确切地使用不可预测的 URL 来提高安全性?