こんにちは、webプログラマーwishigrowです。

難しくて、勉強になったのでメモ&共有
画像への外部からのアクセス禁止について。

状況

wordpressで会員制サイトを構築し終わりました。
ログイン状況を取得して、表示するかどうかを分岐させる。
会員用の投稿フォームをつくる。
など、なかなか手ごわいサイトでした。

完成したかと思いきや、ログインしていなくても画像ファイルが見れてしまうというのです。
これは困った。

何が問題か?

画像のURLが分かってしまうと、直接入力するとそれが表示されてしまう。
PHPでのログイン分岐とか関係なく、会員じゃなくても画像を見れてしまうのです。

まぁ、Webってそういうものなのですよ。
ファイル流出で問題になることもある。

解決策

アクセス制限をかければ良いということは分かる。
画像が入っているディレクトリに「.htaccess」というのを書くと、パスワードで保護したりできるのは知っている。

しかし、何を書けば良いのか?

Deny from all

「Deny from all」と書けば、すべてのアクセスを制限できます。

『これだったら、誰にも見られないなぁ、良かったなぁ』って思っていたら、
自分にも見れない!
見せたいPDFも見せられなくなる。

「Allow from wishigrow.com」と書けば、wishigrow.comからのアクセスのみ許可することになるのでいけるかと思ったが、自分のサイト内なので、画像へアクセスはダダ漏れのまま。

ダメです。

その他

パスワードで保護する方法、別ページに飛ばす方法などがあり、やってみたが、意味なかった。

画像ファイルだけアクセス制限

特定の拡張子だけアクセス制限する方法もある。
「<Files ~ “\.jpg$”>
Deny from all
</Files>」

『これは行けたか!』って思ったけど、
「Deny from all」と同じ効果なので、表示させたい場所にも表示できなくなる。

お手上げか?

よくわからないけど、できた

一度、振り出しに戻して、一生懸命にネット検索しました。
検索フレーズが難しいんですよね。

しかし、こちらのサイトに良いものを書いてくれています。
画像への直リンクを防ぐ .htaccess

ちょっと修正してやってみたら上手く動作しました。
gatespaceさん、ありがとうございます。

「.htaccess」には色々な書き方があるんですね。
Webは奥深いなぁ。
常に勉強しなければいけない厳しい世界だ。

では、以上です。

Webサイトづくり、ブログ運営などの相談があれば、ご連絡下さい。
ややこしいことをしない、効率的な方法を教えます。

募集中のイベントはありません

投稿者: 石黒わらじろう

京都の古い民家で暮らしている。 趣味はランニングとブログと盆踊りを含むフォークダンス。 別名義で書いた小説は映画の原作として採用された。 自分で建てた小屋にて暮らしていたことがある強靭な狂人。 地球にも自分にも健康な生活がしたい。

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です