it-swarm-ja.com

.htaccessリンクのみでファイルではなくアクセスを許可する

allow from ip.ip.ip.ipディレクティブによってディレクトリへのアクセスを制限することが可能であることを私は知っています。

しかし、私はわずかに(?)異なる問題を抱えています:pdfファイルのみを含むディレクトリがあります。これらのファイルへのアクセスを制限したい:-ブラウザにリンクを入力してこれらのPDFファイルを表示しようとすると、e。 g。 http://domain/pdf_path/pdf1.pdf呼び出しは失敗するはずです。 -ただし、ユーザーがhttp://domain/内のリンクをクリックしてファイルを開いた場合、e。 g。ソースファイルhttp://domain/index.phpから、pdfファイルが表示されます。

(http.confではなく).htaccessでこれを実現する方法はありますか?

2
Christian Graf

.htaccessの-​​ HTTPリファラー ヘッダーを確認できます。リファラーは、フェッチされているリソースにリンクしているWebページのアドレスを示します。そのため、リファラーが適切なドメインのページを指していることを確認できます。

詳細については、例えばを参照してください。この質問: htaccessファイルのダウンロードを制限するようにApacheリファラーを制御する

警告:

あなたがチェックしているドメインの名前を人々が知っていれば、これは簡単に回避できます。ほとんどのブラウザとダウンロードツールではリファラーを直接設定できるため、http://foo.example/を指すリファラーのみが許可されていることがわかっている場合は、リファラーをhttp://foo.example/blahに設定するだけで、アクセスチェックによってブロックされることはありません。

深刻なセキュリティが必要な場合は、HTTPSのみのWebサイトと組み合わせて、おそらく適切な認証(ユーザー名/パスワードまたは証明書による)が唯一の賢明なオプションです。

4
sleske