私は動作中のdjangoサイトを持っています-稼働中、問題なく動作しています。認証には Django の contrib.auth を使用します。Heroku でホストされています。デモ目的でこのサイトのクローンをセットアップしたいと考えていますが、サイトの周りにセキュリティ層を追加したいと考えています。これは非常に単純なパスワード保護です。防弾またはハッキング不可能である必要はありません - 「マグル」を試すのを延期するのに十分です.
この承認レイヤーは、サイトの認証自体に干渉してはなりません。これは単なる外部リングです (1 回確認し、アクセス権をセッションに保存します)。サイトは Heroku でホストされているため、これは Web サーバー レベルで行うことはできません。アプリ自体の一部にする必要があります。
私の核となる選択肢は、これを強制するdjangoアプリ(作業タイトル「境界」)を作成することですが、これを行う別の方法を知っている人がいれば、本当に感謝しています。
主な機能は次のとおりです。
- 短いトークン (< 8 文字) を生成するメカニズム
- メールアドレスに対してトークンをログに記録するメカニズム
- サイトへの最初のアクセス時に、ユーザーにトークンと電子メールの組み合わせを求めるプロンプトを表示する
- その後、サイトへの無制限のアクセス (その時点で標準認証モデルが開始されます)
一般的なユーザー ジャーニーは次のとおりです。
- ボブはサイト所有者 (私) にデモ サイトへのアクセスを依頼します
- Bob のトークンを生成し、サイトの URL と共に送信します
- ボブがリンクをクリックすると、メールとトークンを入力するページにリダイレクトされます
- トークンが有効な場合 (X 時間 / 日後に有効期限が切れる)、セッションに保存し、Bob を入れます。
- トークンが有効でない場合は、403 (/401)。
(すでに公開されている Web サイトのコピーを保護することに、なぜ意味があるのか疑問に思われるかもしれません。それは、このサイトがメンバー専用のサイトであり、デモ版では「自動登録」されて、人々がそれがどのようなものかを見ることができるためです。実際のデータにアクセスせずにサイト内で. ただし、ユーザーを追跡できるようにしたいと考えています.)
[更新: 代替]
率直な代替案は、Bob に送信する URL にトークンを追加し、彼の電子メールを無視して、単にトークン自体を検証することです。Bob が常に電子メールの URL を使用している限り、これは機能します。