特に認証/アクセスの観点から、ウェブサイトの管理セクションを保護するためのベストプラクティスを人々がどのように考えているかを知りたいのですが。
もちろん、SSLを使用したり、すべてのアクセスをログに記録したりするなど、明らかなことはありますが、これらの基本的な手順の上のどこに人々がバーが設定されていると考えているのでしょうか。
例えば:
- 通常のユーザーに使用するのと同じ認証メカニズムに依存していますか?そうでない場合、何ですか?
- 同じ「アプリケーションドメイン」で管理セクションを実行していますか?
- 管理セクションを未発見にするためにどのような手順を踏んでいますか?(または「あいまいな」こと全体を拒否しますか)
これまでのところ、回答者からの提案は次のとおりです。
- ブルートフォース攻撃を防ぐために、各管理者パスワードチェックに人工的なサーバー側の一時停止を導入します[開発者向けアート]
- ユーザーと管理者が同じDBテーブルを使用して別々のログインページを使用する(管理エリアへのアクセスを許可するXSRFとセッション盗用を停止するため)[Thief Master]
- Webサーバーのネイティブ認証を管理領域に追加することも検討してください(例:.htaccess経由) [Thief Master]
- 多数の管理者ログイン試行の失敗後にユーザーのIPをブロックすることを検討してください[Thief Master]
- 管理者のログイン試行が失敗した後にキャプチャを追加する[Thief Master]
- ユーザーと管理者に(上記の手法を使用して)同等に強力なメカニズムを提供します(たとえば、管理者を特別に扱いません)[Lo'oris]
- 2番目のレベルの認証を検討してください(クライアント証明書、スマートカード、カードスペースなど)[JoeGeeky]
- 信頼できるIP /ドメインからのアクセスのみを許可し、可能であれば、基本的なHTTPパイプラインに(たとえば、HttpModulesを介して)チェックを追加します。[ジョーギーキー]
- [ASP.NET] IPrincipalとPrincipalをロックダウンします(それらを不変で列挙できないようにします)[JoeGeeky]
- フェデレート権限の昇格-たとえば、管理者の権限がアップグレードされたときに他の管理者にメールを送信します。 [ジョーギーキー]
- 管理者にきめ細かい権限を検討します。たとえば、役割ベースの権限ではなく、管理者ごとに個別のアクションの権限を定義します[JoeGeeky]
- 管理者の作成を制限-たとえば、管理者は他の管理者アカウントを変更または作成できません。これには、ロックダウンされた「superadmin」クライアントを使用します。[ジョーギーキー]
- クライアント側のSSL証明書、またはRSAタイプのキーフォブ(電子トークン)を検討する[Daniel Papasian]
- 認証にCookieを使用する場合は、たとえばadminセクションを別のドメインに配置するなどして、adminページと通常のページに別々のcookieを使用します。[ダニエルパパシアス]
- 実用的な場合は、管理サイトをプライベートなサブネット上に置いて、パブリックインターネットから切り離すことを検討してください。[ジョンハートソック]
- Webサイトの管理/通常の使用コンテキスト間を移動するときに認証/セッションチケットを再発行する[Richard JP Le Guen]