最近、ウェブサイトの管理ログインシステムを保護する必要があり、セキュリティはセカンドオピニオンの恩恵を受ける傾向があるため、使用している方法についてセカンドオピニオンを取得したいと思いました。
実装の詳細:Linux、Debian、Mysql、Php
IPホワイトリストシステム
パーツ:データベース内:ユーザー名、パスワード、電子メール、IPアドレス、ユーザーが提供するIPホワイトリスト:ユーザー名、クライアントが提供するパスワード:現在のIPアドレス
正しいユーザー名とパスワードを要求することに加えて、ログインを許可するには、接続元のシステムのIPをホワイトリストに登録する必要があります。したがって、システムのロジックは次のようにカスケードされます。
- IPがホワイトリストに登録されていない場合:ログインできない場合は、そのIPを確認する必要があります。
- 現在のIPを確認する:ページに移動し、ユーザー名を入力すると、「ユーザー名[someUsername]が存在する場合はそのユーザー名を確認し、そのアカウントの自動メールを直接受信します」というメッセージが表示されます。確認メールは、そのアカウントが存在し、アクティブである場合、そのアカウントに登録されているメールに送信されます。それ以外の場合は、メッセージを表示するだけで何もしません。
検証メール:検証データベースのキーと一致する秘密キーとのリンク、サイトへのリンク、ページリンクがデータベース内のそのレコードのIPを検証するだけです。
ipホワイトリストに登録されている場合:ホワイトリストに登録されると、正しいユーザー名とパスワードの組み合わせが通常どおりログインに受け入れられ、誤った組み合わせは拒否されます。
それがシステムです。銀行がデバイスを検証するために使用する方法と少し似ているように見えますが、同一ではないため、おそらくリファクタリングが必要です。何かアドバイス?