JSONファイルを使用して設定を保存するWebサイトがあります。これらのファイルはサブフォルダーにあるため、/settings/settings.json
のようになります。
http://192.168.1.1/settings/settings.json
のようにローカルネットワーク上のIPアドレスを入力すると、JSONの内容を確認できます。どういうわけかこれを防ぐ必要があり、.htaccessファイルを介してこれを行うことができるかもしれないと思いますが、確かではありません。ドメイン名(192.168.1.1
)は動的であり、時々変更される可能性があるため、それを防ぐための動的な方法を見つける必要があります。
Apacheを使用している場合は、次を使用できます。
.htacess
ファイル
httpd.conf
のDirectory
ブロック(パフォーマンスの向上)
Lighttpd
を使用している場合は、次を使用できます。
url.access-deny
のlighttpd.conf
ディレクティブ手順については、以下を参照してください。
.htacess
ファイルの使用settings
ディレクトリに次の内容の.htaccess
ファイルを作成します。
deny from all
これにより、そのフォルダ内のファイルへのアクセスが拒否されます。
注意:
Httpdメインサーバーの設定ファイルにアクセスできる場合は、.htaccessファイルを完全に使用しないでください。 .htaccessファイルを使用すると、Apachehttpサーバーの速度が低下します。 .htaccessファイルに含めることができるディレクティブは、パフォーマンスが向上しても同じ効果があるため、Directoryブロックに設定する方が適切です。
ソース Apache HTTPサーバーチュートリアル:.htaccessファイル
httpd.conf
でDirectory
ブロックを使用するhttpd.conf
ファイルに以下を追加します
<Directory "/settings">
Require all denied
</Directory>
url.access-deny
でlighttpd.conf
ディレクティブを使用する
mod_access
モジュールは、ファイルおよびディレクトリへのアクセスを拒否するために使用されます。
/etc/lighttpd/lighttpd.conf
ファイルを次のように編集します。vi lighttpd.conf
次のコードを追加して、mod_accessを有効にします。
server.modules += ( "mod_access" )
次のように正規表現を追加します。
# deny access to /settings $HTTP["url"] =~ "^/settings/" { url.access-deny = ("") }
ファイルを保存して閉じます。
構文エラーをチェックします。
lighttpd -t -f /etc/lighttpd/lighttpd.conf
エラーがない場合は、
lighttpd
Webサーバーを再起動します。service lighttpd restart
ソース Lighttpdはフォルダ/ディレクトリへのアクセスを拒否します 。スクリプトは、質問の要件に一致するように調整されています。