3

私は動作中のdjangoサイトを持っています-稼働中、問題なく動作しています。認証には Django の contrib.auth を使用します。Heroku でホストされています。デモ目的でこのサイトのクローンをセットアップしたいと考えていますが、サイトの周りにセキュリティ層を追加したいと考えています。これは非常に単純なパスワード保護です。防弾またはハッキング不可能である必要はありません - 「マグル」を試すのを延期するのに十分です.

この承認レイヤーは、サイトの認証自体に干渉してはなりません。これは単なる外部リングです (1 回確認し、アクセス権をセッションに保存します)。サイトは Heroku でホストされているため、これは Web サーバー レベルで行うことはできません。アプリ自体の一部にする必要があります。

私の核となる選択肢は、これを強制するdjangoアプリ(作業タイトル「境界」)を作成することですが、これを行う別の方法を知っている人がいれば、本当に感謝しています。

主な機能は次のとおりです。

  • 短いトークン (< 8 文字) を生成するメカニズム
  • メールアドレスに対してトークンをログに記録するメカニズム
  • サイトへの最初のアクセス時に、ユーザーにトークンと電子メールの組み合わせを求めるプロンプトを表示する
  • その後、サイトへの無制限のアクセス (その時点で標準認証モデルが開始されます)

一般的なユーザー ジャーニーは次のとおりです。

  • ボブはサイト所有者 (私) にデモ サイトへのアクセスを依頼します
  • Bob のトークンを生成し、サイトの URL と共に送信します
  • ボブがリンクをクリックすると、メールとトークンを入力するページにリダイレクトされます
  • トークンが有効な場合 (X 時間 / 日後に有効期限が切れる)、セッションに保存し、Bob を入れます。
  • トークンが有効でない場合は、403 (/401)。

(すでに公開されている Web サイトのコピーを保護することに、なぜ意味があるのか​​疑問に思われるかもしれません。それは、このサイトがメンバー専用のサイトであり、デモ版では「自動登録」されて、人々がそれがどのようなものかを見ることができるためです。実際のデータにアクセスせずにサイト内で. ただし、ユーザーを追跡できるようにしたいと考えています.)

[更新: 代替]

率直な代替案は、Bob に送信する URL にトークンを追加し、彼の電子メールを無視して、単にトークン自体を検証することです。Bob が常に電子メールの URL を使用している限り、これは機能します。

4

1 に答える 1

3

私はこれに対する独自のソリューションを作成しました - Django-Perimeterに会います。

このアプリは (まだ) パッケージ化されていないため、ソースを複製して自分の django サイトに手動で追加する必要がありますが、機能します。アクセストークンを生成し、それらのトークンを使用してサイト (サイトの一部ではなくサイト全体) へのアクセスを保護する機能を提供します。

[アップデート]

これは PyPI 経由で利用できるようになりました - http://pypi.python.org/pypi/django-perimeter

を使用してインストールできますpip install django-perimeter

于 2013-02-12T08:56:48.197 に答える