2016-08-24 12 views
0

私は、ファイル/アップロード内のjpgイメージを管理するWebアプリケーションを持っています。私はurl:domain.com/upload/image.jpgからのすべての画像へのアクセスを拒否したいですが、/page.phpへのアクセスを許可します。私は/upload/.htaccessを試しましたが、私の/page.phpファイルへのアクセスも拒否しています。ディレクトリ内のすべてのファイルへのアクセスを拒否できますが、他のディレクトリの特定のPHPファイルからのアクセスを許可するにはどうすればよいですか?

提案がありますか?

+0

どのように 'page.php' "負荷" の画像?イメージを読み込み( 'fopen()'など)、イメージデータを返すか、 '/ upload/image.jpg'にリンクするだけです。 –

+0

サブフォルダイメージを作成した後にリダイレクトマッチを試して、その中にすべてのイメージを配置してください。 page.phpをupload/page.phpに入れてください。 RedirectMatch ^/upload/images/$ http://example.com/ – Rahi

+0

返信ありがとうございます@JonLin画像をリンクして読み込みます/upload/image.jpg –

答えて

0

画像はあなたがpage.phpによって生成されたコンテンツからそれらをリンクしている場合

/upload/image.jpgそれらをリンクすることによってロードされ、その後、htaccessファイルを使用して、それを阻止する唯一の方法は、チェックすることです"Referer"(sic)ヘッダー。このヘッダーはブラウザによって送信され、そのリソースをロードするためにどのURLが指定されたのかをサーバーに通知します。誰かが直接画像に行くと、リファラーは空白になることがあります(URL住所バーに入力するなど)。page.phpからリンクされている場合、リファラーは/page.phpと表示されます。しかし、リファラーは何かを言うために簡単に偽造されるので、アクセスをブロックする信頼できる手段ではありません。あなたの/upload/フォルダの試みは、追加でのhtaccessファイルで

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !/page\.php$ 
RewriteCond %{REQUEST_URI} !\.php$ 
RewriteRule^- [L,F] 
+0

を試してみてください。 するRewriteCondの%{HTTP_REFERER} /ページ\の.php $ するRewriteCond%{REQUEST_URI}で 'RewriteEngine \ PHPの$'のRewriteRule^- [L、F]。 ' **明らかに私のページ名を追加しました **キャッシュをクリアしました PHPページは魅力的ですが、アドレスバーにURLを入力してイメージを取得することはできます。 –

+0

@BryanJイメージを既に読み込んでいる場合は、キャッシュされます。あなたはキャッシュをクリアしてから直接画像に行きましたか? –

+0

はい、キャッシュをクリアしました。 –

関連する問題