2016-06-24 6 views
0

私は現在PHPウェブサイトを運営しており、ブラウザバーにディレクトリが入力されていればイメージへのアクセスを拒否する方法があるのだろうか?上記の画像を<img src="">タグの付いたページで使用することはできます。 私はメインページ "home.php"と同じレベルにある "images"というディレクトリに上記のイメージを保存します。私は.htaccessファイルとその中のdeny from allコマンドに精通していますが、私が言ったように、他のページには '禁止された'ファイルは表示されません。誰かが私を助けてくれることを願っています。ありがとう!アクセスphpページを拒否しているが、まだインクルードできるようにする

+0

は、ここでApacheのソリューションです:http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from-direct-url-access – brandonscript

+0

そして、ここでの.jsソリューションです。 http://stackoverflow.com/questions/13658988/prevent-direct-access-to-images-using-the-browser-url – brandonscript

答えて

1

はたぶん、あなたはこの試みることができる:

<Files "./your_directory/yourfile.png"> 
Order Allow,Deny 
Deny from all 
</Files> 
0

を基本的に、私は両方のケースでユーザーのブラウザが要求を行う当事者であるので、答えは「いいえ、」だろうと信じています。   Apacheは、ブラウザがそのような要求をしている理由を2つの "理由"を知ることができず、区別することができないかもしれません。

一方、ホスト側のアプリケーション内のプログラムコードでは、おそらくになる可能性があります。直接またはmod_rewriteのトリックを使用すると、HTTPリクエストの全体を調べて、どの種類のレスポンスを生成するかを判断できるサーバ側スクリプトに着信リクエストを送ることができます。 イメージコンテンツ、または404.  このシナリオでは、Apacheは要求を受け入れます... Denyはありません...直接画像を提供するのではなく、その決定を下すスクリプトに手を差し伸べてください。 (スクリプトはファイルからデータを引き出すことができます。おそらく、Apacheがまったく役に立たないディレクトリから "合理的に速い"ことができます)。

ところで でディレクティブを使うことができます。 <Directory>またはのレベルでは、はこのような要求を「このようなスクリプトにする」の動作を強制するため、ユーザーのブラウザがそのようなイメージを要求したときにApacheはそのハンドラスクリプトを実行します。要求されたファイルの名前を含むURLを渡します。ユーザーは実際に何が起こったのか知ることができません)。

0

これは多くの方法で達成できますが、インターネット用語は「ホットリンク」と呼ばれています。このツールhttp://www.htaccesstools.com/hotlink-protection/を使用して、独自の.htaccessファイルを作成することができます。

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] 
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] 
関連する問題