Django JSON反序列化安全性

Cer*_*rin 12 python security django json

Django的JSON解串器是否存在任何已知的安全漏洞?关于Python反序列化协议,一般的共识似乎是它们完全不安全,所以避免解析不受信任的数据.

但是,我正在考虑一个分布式Web应用程序,其中不同的服务器交换模型记录,格式为JSON.记录本身不包含敏感数据,但我担心被黑客服务器通过发送恶意格式化的JSON来破坏其他服务器的能力.这可能吗?

我经常在面向公众的环境中看到Django的JSON序列化程序,所以我希望它能够抵御这种情况,但是我找不到任何解决任何安全问题的文档.

Dan*_*man 3

我无法确定您认为 JSON 可能不安全(或安全)的地方。

JSON 是一种基于文本的数据交换格式。它没有任何内置的安全性。Django 附带了一些将查询集序列化和反序列化为 JSON 的函数。但这些不可能是“恶意的”或“不安全的”——它们只是数据。

某些序列化协议(例如 pickling)可能不安全,因为它们可能包含代码,因此可能会被反序列化以运行损害系统的内容。序列化模型不存在这个问题,因为它们不包含代码。

当然,如果您使用 JSON(例如)传递要删除的模型 ID 列表,那么恶意用户就有可能包含您不想删除的全部 ID。但这又不是 JSON 的错 - 您需要确保您的业务逻辑正确确定允许用户删除或修改哪些元素。

  • 但如果解码器有缺陷,那么[甚至](http://www.securityfocus.com/bid/17365)[数据](http://technet.microsoft.com/en-us/security/bulletin/ms04-028 ) [可能](http://technet.microsoft.com/en-us/security/bulletin/ms04-025) [恶意](http://www.securityfocus.com/bid/51292)。 (8认同)