JSON解析和安全

7 javascript python security json

我们的基础设施使用 Python 处理后端的所有内容,使用 Javascript 处理我们的“前端”(它是我们为其他站点提供服务的库)。基础设施不同组件之间的通信是通过 JSON 消息完成的。

在 Python 中,json.load()json.dump()是处理 JSON 字符串的安全方法。在 Javascript 中,JSON.parse()将改为使用。但是,这些函数只能保证字符串具有正确的 JSON 格式,对吗?

如果我担心注入攻击,我需要通过其他方式清理 JSON 的每个字段。我的这个假设正确吗?或者仅仅使用前面提到的功能我们就安全了?

Orr*_*oni 5

JSON.parse如果输入字符串不是有效的 JSON 格式,则会抛出异常。使用起来很安全,我想不出任何方法可以仅使用 JSON.parse 来攻击您的代码。它不像 那样工作eval

当然,您可以检查生成的 json 对象以确保它具有您期望的结构。

  • 根据本文,来自 JSON.parse() 的用户输入是原型中毒的潜在向量:https://medium.com/intrinsic/javascript-prototype-poisoning-vulnerability-in-the-wild-7bc15347c96 (3认同)

Sil*_*Fox 3

不存在没有上下文的经过净化和未经净化的数据。

仅当用户控制的数据在具有特殊含义的上下文中使用时,数据才被视为不安全。

例如',在 SQL 中和<script>在 HTML 中。

与 SQL 相反<script>,它是完全安全的。

结果是在使用数据时进行编码/清理,而不是在从 JSON 接收数据时进行编码/清理。