PerlでCGIを作っています。


画像などをあるフォルダに置く場合に、直リンを禁止したいときがあります。

質問というのは画像への直リンを禁止する方法なのですが、直リンを禁止した場合、その画像を見るには、そこのHTMLファイルを通じてみるしか方法はないのでしょうか?

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:2007/11/07 13:02:48
  • 終了:2007/11/15 01:44:32

回答(4件)

id:iwaim No.1

iwaim回答回数215ベストアンサー獲得回数192007/11/07 15:54:32

ポイント35pt

a) 直リンを禁止する方法が知りたい

b) 何らかの方法直リンを禁止した場合にその画像を見る方法としてどのようなものがあるのか知りたい

このどちらなのかが質問文から上手くわからないので両方書いてみます。

まず「直リン禁止」の定義を「画像ファイルを示すURLをウェブブラウザなどで直接表示させようとする行為や、(別のウェブサイトなど)意図しないHTMLファイルから画像ファイルを表示する行為を禁止する」と理解しましたが、これであってますか?

あってた場合、これを実現するためにはreferrer(HTTP_REFERER)を制限する方法しかないはずです。つまり、画像をHTTPヘッダ付きで出力するためのスクリプトを作成した上で、そのスクリプトを実行する場合にHTTP_REFERERの値を調べ、意図するURL(ドメインなど)から呼び出されている場合のみに画像を出力するようにすれば良いです。

http://q.hatena.ne.jp/1194408166

id:zachouR

質問がたらずにすいません。

内容はそのとおりです!

しかし、自分の頭ではなかなか理解ができませんでした、、、のでHTTP_REFERERを今から調べてみようと思います。

2007/11/07 16:12:06
id:tezcello No.2

tezcello回答回数457ベストアンサー獲得回数682007/11/07 16:04:17

ポイント35pt

.htaccess が使えるなら簡単です。

対象のディレクトリに .htaccess を置き

Options none
deny from all

を書き込んでおきます。

(Web経由のアクセスは全て禁止するという内容です)

cgiなどの内部からのアクセスの場合は、この設定がしてあっても問題無く読み出せるはずです。


ですが、cgi から書き出したページで

<img src="~~">

とした場合は、結局Webからのアクセスになるのでダメです。

SSIでスクリプトから出力させるとか...が必要でしょう。


http://q.hatena.ne.jp/1194408166

id:zachouR

なるほど!しかし、自分内のHTMLからのアクセスもロックしてしまうんですね、、、。

SSIはある事情でつかえないので、、、。

ページをひとつひとつCGIで作り出すしかないかな、、、。

2007/11/07 16:13:07

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 tezcello 457 418 68 2007-11-07 17:14:01
2 まきのっぴ 352 311 28 2007-11-07 21:34:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません