当面は、.htaccessと.htpasswdを使用してサイト上のディレクトリを保護します。しかし、これはどれほど安全なのかと思っていましたか?注意が必要なことや、セキュリティを強化できることはありますか?
理由はわかりませんが、自信が持てません。この種のセキュリティは簡単に破られてしまうような気がします。私が読んだことから、.htpasswdファイルをダウンロードしてパスワードを復号化する方法があります。
すべてのアクセスがSSLを介している場合は、かなり安全です。
SSLを使用しない基本認証では、ユーザー名/パスワードがbase64エンコードとして送信されるだけなので、MITMまたはスニッフィングを介してトークンを抽出するのは簡単です。
SSLを使用しないダイジェスト認証ははるかに優れていますが(チャレンジベースのメカニズム)、暗号化された接続ほど安全ではありません。ただし、認証が基本ではなくダイジェストとして実装されているというユーザーへの手がかりはほとんどありません。また、プロキシ認証のチャレンジも非常によく似ています。
組み込みの認証メカニズムでは、優れたユーザーエクスペリエンスは提供されません。これが小規模で定義されたユーザーグループを持つサイトの場合は、組み込みの方法を使用するのが迅速な解決策です(ただし、代わりにクライアント側の証明書認証を検討することもできます)。しかし、一般向けのWebサイトの場合は、もう少し洗練されたsomethnigの実装を検討する必要があります。
Htaccessファイルとパスワードデータベースに直接アクセスできないように、ウェブサーバーを適切に設定する必要があります。ドキュメントルートの外に構成を配置する(明らかにこれはhtaccessファイルでは機能しませんが、これらはWebサーバー構成のローカル拡張にすぎません)か、ファイルへのアクセスをブロックします。私が今までに遭遇したすべてのApacheディストリビューションは、「。ht」で始まる名前のファイルへのアクセスをブロックします
パスワードdbへの直接アクセスを防ぐことはできますが、HTTPを介したサーバーへのブルートフォース攻撃を制限するための大きな範囲はありません。フォームベースのアプローチを検討するもう1つの理由です。
このリソースをチェックして、htaccessが適切に保護されていることを確認します。
http://www.symantec.com/connect/articles/hardening-htaccess-part-one
そして、より優れた運用制御が必要な場合は、WAFまたはmod_securityを調べます。
http://www.askapache.com/htaccess/modsecurity-htaccess-tricks.html
理想的には、ハッカーが.htpasswdファイルをダウンロードできないようにする必要があります。Apacheは、「。ht」で始まるファイルへのアクセスを拒否します。これは、FTPアクセスを許可せず、アプリの脆弱性は、きちんとした形である必要があります。