一部のファイルへのアクセスを拒否する
.htaccessを使用して機密設定ファイルへのアクセスを拒否する方法
ウェブサイトを構築および維持する際には、セキュリティが常に最優先事項であるべきです。ウェブセキュリティの中で見落とされがちですが重要な側面の一つは、設定ファイルなどの機密ファイルがブラウザを通じて一般に公開されないようにすることです。
例えば、config.cfgのようなファイルにはデータベースの認証情報、APIキー、またはその他の機密情報が含まれている可能性があります。適切に保護されていない場合、誰かが単にhttp://www.yourdomain.com/config.cfgとブラウザに入力することで、このファイルの内容にアクセスできてしまいます。このような脆弱性は、データ漏洩、ウェブサイトの改ざん、または場合によってはサーバーの完全な侵害につながる可能性があります。
幸いなことに、Apacheウェブホスティングを使用している場合(AvaHostのようなほとんどの共有ホスティングプランが該当します)、.htaccessファイルを使用して簡単にそのようなファイルを保護できます。
.htaccessとは?
.htaccessファイルは、Apacheウェブサーバーがディレクトリレベルの設定を適用するために使用する設定ファイルで、メインのサーバー設定を変更する必要がありません。特に以下のようなことに便利です:
ディレクトリリストの有効化または無効化
リダイレクトの設定
HTTPSの強制
特定のファイルやフォルダへのアクセス制御
私たちのケースでは、.htaccessを使用して
.cfgファイルへの直接アクセスを拒否します。
設定ファイルを保護する方法
✅ ステップ 1: ディレクトリを見つける
機密ファイルを含むディレクトリに移動します — 例えば、config.cfgが保存されているのと同じフォルダです。これは通常、ウェブサイトのドキュメントルート内(/public_html/、/www/、またはそれに類似した場所)にあります。
✅ ステップ 2: .htaccessファイルを作成または編集する
このディレクトリにすでに.htaccessファイルがある場合は、それを開きます。ない場合は、新しいファイルを作成し、.htaccessと名付けます(はい、最初にドットを付けてください)。
✅ ステップ 3: セキュリティルールを追加する
次のディレクティブをファイルに挿入します:
<FilesMatch ".(cfg)$">
Order allow,deny
Deny from all
</FilesMatch>これが意味すること:
<FilesMatch “.(cfg)$”> — .cfgで終わるすべてのファイルをターゲットにします
Order allow,deny — ルールの優先順位を設定します(Apache 2.2の構文)
Deny from all — 一致するファイルへのすべてのウェブアクセスを拒否します
その結果、ブラウザからconfig.cfgを直接開こうとすると、403 Forbiddenエラーが返されます。
📌 注: Apache 2.4+を使用している場合は、代わりにこの現代的な構文を使用する必要があるかもしれません:


