0

最近、ウェブサイトの管理ログインシステムを保護する必要があり、セキュリティはセカンドオピニオンの恩恵を受ける傾向があるため、使用している方法についてセカンドオピニオンを取得したいと思いました。

実装の詳細:Linux、Debian、Mysql、Php

IPホワイトリストシステム

パーツ:データベース内:ユーザー名、パスワード、電子メール、IPアドレス、ユーザーが提供するIPホワイトリスト:ユーザー名、クライアントが提供するパスワード:現在のIPアドレス

正しいユーザー名とパスワードを要求することに加えて、ログインを許可するには、接続元のシステムのIPをホワイトリストに登録する必要があります。したがって、システムのロジックは次のようにカスケードされます。

  • IPがホワイトリストに登録されていない場合:ログインできない場合は、そのIPを確認する必要があります。
  • 現在のIPを確認する:ページに移動し、ユーザー名を入力すると、「ユーザー名[someUsername]が存在する場合はそのユーザー名を確認し、そのアカウントの自動メールを直接受信します」というメッセージが表示されます。確認メールは、そのアカウントが存在し、アクティブである場合、そのアカウントに登録されているメールに送信されます。それ以外の場合は、メッセージを表示するだけで何もしません。
  • 検証メール:検証データベースのキーと一致する秘密キーとのリンク、サイトへのリンク、ページリンクがデータベース内のそのレコードのIPを検証するだけです。

  • ipホワイトリストに登録されている場合:ホワイトリストに登録されると、正しいユーザー名とパスワードの組み合わせが通常どおりログインに受け入れられ、誤った組み合わせは拒否されます。

それがシステムです。銀行がデバイスを検証するために使用する方法と少し似ているように見えますが、同一ではないため、おそらくリファクタリングが必要です。何かアドバイス?

4

1 に答える 1

1

私の唯一の提案は、ゴールデン質問と電子メールを使用することです。電子メールは簡単に危険にさらされます。


ゴールデンクエスチョンに慣れていない場合は、X個のクエスチョンアンドアンサーをインポートする場所です。初めてログオンしたときに、ランダムにそれらのサブセットに回答してもらいます。正しく実行された場合は、ホワイトリストに登録できます。新しいIPを使用してログオンするたびに、このプロセスが繰り返されます。


追加の利点のいくつかは、ユーザーエクスペリエンスが高速で、中断が少ないことです(アクセスが許可される前に電子メールを待つ必要がありません)。

于 2011-04-22T17:47:04.717 に答える