【发布时间】:2010-09-28 13:52:07
【问题描述】:
在研究JSON vs XML 的问题时,我遇到了this question。现在,更喜欢 JSON 的原因之一被列为在 Javascript 中易于转换,即使用 eval()。现在,从安全角度来看,这立即让我觉得可能存在问题。
所以我开始对 JSON 的安全性方面进行一些研究,并在这篇博客文章中了解 JSON is not as safe as people think it is 的安全性。这部分突出:
更新:如果您使用 JSON 100% 正确地,那么你将只有 顶层的对象。数组, 字符串、数字等都将是 包裹。 JSON 对象将失败 到 eval() 因为 JavaScript 口译员会认为它在看 块而不是对象。这 有很长的路要走,以防止 这些攻击,但它仍然是最好的 保护您的安全数据 不可预测的 URL。
好的,这是一个很好的开始规则:顶层的 JSON 对象应该始终是对象,而不是数组、数字或字符串。听起来对我来说是一个很好的规则。
对于 JSON 和 AJAX 相关的安全性,还有什么需要做或避免的吗?
上面引用的最后一部分提到了不可预测的 URL。有没有人有这方面的更多信息,特别是你如何在 PHP 中做到这一点?我在 Java 方面比 PHP 更有经验,在 Java 中这很容易(因为您可以将整个范围的 URL 映射到单个 servlet),而我所做的所有 PHP 都将单个 URL 映射到 PHP 脚本。
另外,您究竟如何使用不可预测的 URL 来提高安全性?
【问题讨论】:
-
我一点也不明白!当然,浏览器发出的任何请求(对任何 URL - 不可预测或不可预测)都可以使用控制台或一些花哨的 GM 脚本报告给用户......
-
“JSON 不像人们想象的那么安全”已经死了
标签: javascript ajax security json