• 締切済み

画像ファイルをブラウザ経由でアクセスされたくない

PHPでプログラミング中です。 ユーザの画像ファイルを現在public_html配下のimgに保存しているのですが、これだとブラウザ経由で不特定多数の人に閲覧されてしまうため制御したいと考えています。 例)test.com/img/1.gif等ブラウザで表示されてしまう。 上記のような場合どの様に対応されていますでしょうか。 DBに画像を登録しようとしたのですが、DB負荷を考慮して今回はDBには画像は保存しない方針です。 ちなみに、htaccessで制御できるかと考え、以下のURLを試しましたが共にうまくいきません。 http://server-setting.info/centos/htaccess_deny_picure.html http://www.shtml.jp/htaccess/data.html 確かにブラウザ経由で直接画像にアクセスすると見えなくなっているのですが、PHPからアクセスしても画像が表示できなくなりました。 対応方法どなたかご存知の方いらっしゃいましたらご教授ください。 よろしくお願いいたします。

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>PHPからアクセスしても画像が表示できなくなりました。 画像データをブラウザに返すphpスクリプトのURLをどのように組み立てられていますか?そのURLのQueryStringが画像ファイル名で終わっていたりはしませんか? gazou.php?file=1.jpg みたいになっていると、1.jpg というURLと実質的に(.htaccessでの条件に合致するかどうかは)変わりません。gazou.php?file=1 として自前で拡張子を補うかgazou.php?file=1.jpg&a=b のように適当なQueryStringを追加してしまうなどの工夫は必要です。 (蛇足) 私が書くとしたら (1)当該ページにアクセスしたらCookieを書き出す(期限はブラウザを閉じるまで)。 (2)画像ファイルへのアクセスは、そのCookieが存在しないとdenyとする。 くらいしかやりませんね。画像ファイルなどをphpスクリプト経由にするのは、もっと細かい制御が必要なケースに限定します。

関連するQ&A