2013-03-20 11 views
8

私は生産Django 1.5アプリケーションを維持しています。Djangoプロジェクトで安全なJSON、XML、YAMLのロードを保証する

最近、JSON、XML、およびYAMLオブジェクトの読み込みに関連するさまざまな脆弱性について、多くの騒ぎがありました。私が正しく理解していれば、読み込み機能のバグを悪用するために入力が慎重に作られました。

Django(または私が使用している数多くのサードパーティ製アプリケーション)がこれらのプロトコルのそれぞれをどこで使用しているかはわかりません。どのように私はこのような脆弱性から安全ですか? DjangoがJSON、XML、YAMLを安全にロードしていることを何らかの方法で確認する必要がありますか?

+3

DjangoがJSON、XML、およびYAMLを安全にロードしていることを確認することは、Django開発者の仕事です。私はあなたに保証することができます。コードにはDjangoよりもセキュリティの問題が多分あるでしょう(しかし、それらは明らかに影響が大きく、見つかる可能性が高いです)。 – delnan

+0

あなたはどんなノイズを参照していますか?特定のリンクはありますか? –

+5

私は彼が[Rails YAML exploit](http://rubysource.com/anatomy-of-an-exploit-an-in-depth-look-at-the-rails-yaml-vulnerability/)について話していると信じています。 [Python XMLライブラリのDOS攻撃のパーズ](http://blog.python.org/2013/02/announcing-defusedxml-fixes-for-xml.html)を参照してください。 –

答えて

1

デフォルトでは、Djangoはこれらの形式のユーザー入力を受け入れません。一般に、サードパーティ製のアプリケーションではそうではありませんが、ユーザーが直面している部分を監査する価値はあります。大きなものはAPIプロバイダ(Tastypie、Django REST Frameworkなど)になります。現在のバージョンを使用している場合は、安全である必要がありますが、テスト/確認する価値があります。

これらの形式からアプリに何かをロードする場合は、必ずdefusedxmlとYAMLs safe_loadメソッドを使用してください。標準ライブラリjsonモジュールは、これらの悪用から安全でなければなりません。

関連する問題