Django 1.1.3リリースノート—Djangoドキュメント

提供:Dev Guides
< DjangoDjango/docs/2.2.x/releases/1.1.3
移動先:案内検索

Django1.1.3リリースノート

Django 1.1.3へようこそ!

これは、Django 1.1シリーズの3番目の「バグ修正」リリースであり、Django1.1コードベースの安定性とパフォーマンスを向上させます。

1つの例外を除いて、Django1.1.3はDjango1.1.2との下位互換性を維持しています。 また、多くの修正やその他の改善も含まれています。 Django 1.1.2は、現在Django1.1を使用または対象としている開発またはデプロイメントに推奨されるアップグレードです。

1.1ブランチの新機能、後方互換性、および非推奨の機能の詳細については、 Django1.1リリースノートを参照してください。

後方互換性のない変更

管理インターフェースの制限付きフィルター

Django管理インターフェースdjango.contrib.adminは、データベースレベルの関係全体を含め、対応するモデルのフィールドによるオブジェクトの表示リストのフィルタリングをサポートします。 これは、URLのクエリ文字列部分でルックアップ引数を渡すことによって実装され、ModelAdminクラスのオプションを使用すると、開発者は、フィルタリング用の自動リンクを生成する特定のフィールドまたは関係を指定できます。

歴史的に文書化されておらず、非公式にサポートされている機能の1つは、モデルの構造とこれらのルックアップ引数の形式について十分な知識を持つユーザーが、クエリ文字列を操作することで、便利な新しいフィルターをその場で発明できることです。

ただし、これを悪用して、管理者ユーザーの権限外の情報にアクセスできることが実証されています。 たとえば、管理者にアクセスでき、モデルの構造と関係について十分な知識を持つ攻撃者は、クエリ文字列を作成できます。クエリ文字列は、DjangoデータベースAPIでサポートされている正規表現ルックアップを繰り返し使用することで、ユーザーのパスワードハッシュなどの機密情報を公開します。

これを修正するために、django.contrib.adminは、クエリ文字列ルックアップ引数が、表示されているモデルのフィールドのみを指定するか、上記の既存のメカニズムを使用してアプリケーション開発者によって明示的にホワイトリストに登録された相互関係を指定することを検証します。 これは、任意のルックアップを挿入する以前の機能に依存しているユーザーにとっては、下位互換性がありません。