我们的基础设施将Python用于后端的所有内容,Javascript用于我们的“前端”(它是我们为其他站点服务的库)。基础结构的不同组件之间的通信通过JSON消息完成。
在Python中,json.load()
和json.dump()
是处理JSON字符串的一种安全方法。在Javascript中,将使用JSON.parse()
。但是,这些函数只保证字符串具有正确的JSON格式,对吗?
如果我担心注入攻击,我需要通过其他方法对JSON的每个字段进行消毒。我这个假设是对的吗?或者仅仅使用前面提到的函数,我们就安全了?
发布于 2016-02-26 09:48:05
没有上下文,就没有消毒和非消毒数据这样的东西。
只有当用户控制的数据在具有特殊含义的上下文中使用时,才会认为数据不安全。
例如,'
在SQL中,<script>
在HTML中。
与SQL中的<script>
相反,这是完全安全的。
其结果是在使用数据时对其进行编码/清理,而不是在从JSON接收数据时。
发布于 2016-02-25 15:03:10
如果输入字符串不是有效的JSON格式,JSON.parse
将抛出异常。使用它是安全的,我想不出用JSON.parse攻击您的代码的任何方法。它不像eval
那样工作。
当然,您可以检查生成的json对象,以确保它具有您期望的结构。
https://stackoverflow.com/questions/35630725
复制相似问题