一般的な Web アプリケーション開発においては、データストアに DBMS を利用する。
DBMS は、Web サーバーとローカルネットワーク環境で接続可能であり、HTTP 経由で DBMS へアクセスすることはできない。
小規模な Web アプリケーションでは、*.txt ファイル、*.xml ファイルをデータストアとすることがある。
この場合、IIS のデフォルトの設定では、.txt ファイル、.xml ファイルへアクセス HTTP 経由でアクセスできてしまう。
IIS のデフォルトの設定では、ディレクトリの参照が無効となっており、ディレクトリ内のファイルの一覧を表示することはできないが、ファイル名を直接してやれば HTTP 経由でのアクセスが可能。
*.txt、*.xml 等の特定の拡張子のファイルへの HTTP 経由のアクセスを制限するには、"MIME の種類" リストから、同拡張子のファイルを削除すればよい。
[スタート] -> [管理ツール] -> [インターネット インフォメーション サービス (IIS) マネージャ] 選択する。
特定の拡張子のファイルアクセスを禁止したいフォルダを選択し、[MIME の種類] をダブルクリックする。
特定の拡張子 ( ここでは、.txt ) を選択し、右クリックメニューから削除を選択する。
[MIME の種類] ダイアログが表示されるので、[はい] を選択する。
HTTP 経由で、.txt ファイルへアクセスし、ファイルが表示されず、404.3 エラーが表示されることを確認する。
上記は、localhost でアクセスした場合の例。外部からアクセスした場合には、単に 404 エラーが表示される。
今回は、単一のフォルダに対してのアクセス制限を行ったが、[MIME の種類] の変更は、下位のフォルダへ継承されるので、上位のフォルダに対してアクセス制限を行えば、複数のフォルダ内の特定の拡張子のファイルへの HTTP 経由のアクセス制限をすることができる。
また、今回は、UI での実現方法の紹介を行ったが、web.config ファイルへ以下のノードを追加することによっても実現可能。web.config ファイルが存在しない場合は、新規に作成すればよい。(Apache の .htaccess と同様と考えればよい。)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove
fileExtension=".txt" />
</staticContent>
</system.webServer>
</configuration>
以上
コメント (0)
コメントの投稿