2011-07-22 9 views
9

私は最近、Python pickleとcPickleモジュールのセキュリティ問題を発見しました。 明らかに、少し強固なセキュリティを得るための基本的な変更として、 find_classメソッドを上書きしない限り、pickleには実際のセキュリティ対策が実装されていません。しかし、私はしばしば JSONがより安全だと聞いた。JSONとPickleのセキュリティ

誰でもこれを少し詳しく説明できますか?JSONはなぜピクルスより安全ですか?

ありがとうございます! マーク

+3

「出会った」とはどういう意味ですか?あなたは彼らが不安であると言った何かを読んでいますか?ハッキングしたものを実装しましたか?または何? –

答えて

12

jsonは基本的に制限があるため、より安全です。 jsonドキュメントがエンコードすることができる唯一のpython型は、unicode,int,float,NoneTypebool,listおよびdictです。これらは、コードインジェクション攻撃に対して脆弱ではない基本的に些細な方法でマーシャリング/アンマーシャリングされます。

6

Pickleの問題は、任意のPythonコードを呼び出すことができるということです。詳細については、http://nadiana.com/python-pickle-insecureを参照してください。 JSONパーサーは、文字列、数値、リスト、辞書などを作成するだけです。ユーザ定義のクラスは決して作成されないので、任意のPythonを実行する必要はありません。