1

私は、安全なパスワードジェネレータおよびユーザー名ストレージシステムであるPassPadの開発者の1人です。まだ作業中ですが、安全なログイン/ログアウトシステムを実装するための最良の方法についていくつか質問があります。

現在、私たちが計画しているのは、ログインシステムにユーザー名とセッションキーを含むCookieを保存させることです。これが、認証として機能するすべてです。サーバーは、2つが一致することを確認します。ログイン/ログアウトすると、新しいキーが作成されます。

これはセキュリティ関連のウェブアプリであり、ユーザーを不快にさせる可能性のある情報を実際に保存することはありませんが、セキュリティ指向であるため、少なくともユーザーのように安全に見える必要があります。に満足。

PHPでログイン/アウトシステムを実装するためのより良い方法はありますか?コーディング時間やサーバーリソースをあまり必要としないことが望ましいです。ブルートフォース保護など、他に実装する必要があるものはありますか?どうすればいいですか?

4

1 に答える 1

4

2010 年の OWASP トップ 10、特に A3: Broken Authentication and session managementを読んだことを確認してください。https の要件にすでに違反しているため、これは重要です。また、CSRF についても必ずお読みください。ユーザーにサービスへのログインまたはログオフを強制することは脆弱性です。.htaccess のディレクトリ リストをオフにします: http://passpad.org/actions/

また、特にセキュリティ Web アプリの場合は、Web アプリケーション ファイアウォールを実行することをお勧めします。mod_security は無料で、多くの攻撃を阻止します。また、必ず wapiti (オープン ソース) または acunetix ($$$) を使用してアプリケーションの脆弱性をテストしてください。ただし、WAF を無効にしてアプリをテストするようにしてください。

ブルート フォース保護に関しては、gmail のアプローチがとても気に入っています。彼らが十分な「熱」を得るまで、キャプチャでプロンプトを表示しないでください。システムに対して不適切なアクションを実行すると、熱が蓄積する可能性があります。Heat は、セッションではなく IP アドレスに割り当てられます。たとえば、ユーザーが 2 つのユーザー アカウントにサインアップしている場合、3 つ目のユーザー アカウントに capthca を入力するよう促すことができます。ログインに 3 回失敗した場合は、プロンプトを表示する必要があります。彼らがキャプチャを解決した場合、熱の値を下げるかゼロに設定することで、彼らを「冷やす」ことができます。reCpathca を使用すると、断然最高です。

于 2010-04-23T22:05:22.833 に答える