私はプロジェクトにDjangoのremote user authenticationを使用しています。私が実際に使用しているのは、ミドルウェアのないdjango.contrib.auth.RemoteUserBackend
で、バックエンドでユーザーが合法であることを確認した後、手動でauthenticate
を呼び出すだけです。ミドルウェアのソースを読むDjangoのリモートユーザ認証とセキュリティ
、単にリクエストのヘッダからユーザ名を取得し、その後、このユーザ名を渡すバックエンドに対してユーザを認証するように思われます。リモートユーザーのバックエンドは、ユーザー名が渡されたときにユーザーを気楽にログします。ユーザーは、有効なログインが必要なすべての領域にアクセスできます。
これはただの巨大なセキュリティ上の欠陥ではないですか?これはどういう意味ですか?
私の場合、authenticate
への唯一の呼び出しは、リモートIDの検証が成功した後になるためですが、ミドルウェアが導入された理由が疑問です。あなたのウェブサーバは、訪問者がそのユーザー名に対する有効な資格情報を持っていることを確認し、それに応じてヘッダーを設定しているので、「陽気で、ユーザーがログに記録されます」ジャンゴ
HTTPプレフィックスについて説明していただきありがとうございます。 – Andrea