.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+を使用している場合は、代わりにこの現代的な構文を使用する必要があるかもしれません:

<FilesMatch ".(cfg)$">
Require all denied
</FilesMatch>

AvaHostとセキュリティ

私たちAvaHostでは、完全な.htaccessサポートを提供し、ホスティング環境を完全に制御できます。小さな個人サイトをホスティングしている場合でも、重要なビジネスデータを管理している場合でも、私たちの安全で柔軟なインフラストラクチャに依存して、大切なものを保護できます。

サイトのセキュリティを強化する必要がありますか?私たちのサポートチームは、構成、セキュリティ強化、ベストプラクティスに関して24時間365日お手伝いします。