Django 1.2.2リリース-セキュリティアップデート

2010年9月8日に、 Django開発者はリリース1.2.2をリリースし、攻撃者がXSS攻撃を開始できる脆弱性を解決しました。 皮肉なことに、XSSに対する脆弱性はシステムのコードにあり、別のタイプの攻撃-CSRFに対する保護を実行します。 このシステムはバージョン1.2で根本的に変更されました(以前のバージョンでは、CSRFに対する保護はフレームワークのコアの一部ではなく、単なるプラグイン可能なレイヤーでした)。



エッセンス

CSRFに対する保護は、次の原則に従って機能します。ランダムシーケンス(トークン)が生成され、フォームの非表示フィールドに挿入され、同じシーケンスが特別なCookieに書き込まれます。 フォームを送信すると、非表示フィールドとCookieの値が比較され、これらの値が一致する場合、信頼できるユーザーがフォームを完成したと考えられます。



脆弱性自体について:判明したように、フォームコードに非表示フィールドのHTMLコードを挿入するために使用されるテンプレートタグ{% csrf_token %}



は、トークンの値を無条件に信頼し、 エスケープせずに挿入します。 トークンの値はCookieから取得されます。 したがって、攻撃者はCookieを偽造し、その値にHTMLコードを挿入して、ページに埋め込む可能性があります。



脆弱なバージョン

1.2より前のバージョンは、理解しやすいものではありません。



問題解決

開発者は、ブランチ1.2のすべてのユーザーにすぐに1.2.2にアップグレードするように提供しますが、事前の通知は行わなかったことに注意してください。



脆弱性の本質をよりよく理解するために、手動でパッチを適用するか、差分見ることができます。



こちらもご覧ください



PS 一部の人はすぐに反応したが、ほぼ1日の間、彼らがニュースにあまり注意を払わなかったことは奇妙である



All Articles