人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

php を使って会員サイトを作ろうと思うんですが、*.php ファイルは、保護できるんですが、そのページの中にある、画像ファイルは、直接URLを叩いたら見えてしまうんですが、これ、簡単に保護する仕組みってありますでしょうか?

●質問者: rikimaru
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP URL サイト ファイル 保護
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● noni_juice
●23ポイント

画像のディレクトリを.htaccessで保護してはどうでしょう。

会員への表示は、phpをに画像を一旦読み込ませて再出力すれば

問題なく可能だと思います。

http://www.yahoo.co.jp/

URLダミーで失礼します。

◎質問者からの返答

確かに

ただ、ひとつ問題は、ニュースサイトなので

全部の画像のリンクを、PHP経由にするのは、少しつらいのです

でも、対策としてはありですね


2 ● backupper
●23ポイント

PHPで認証を行っているなら、保護したい画像をPHP経由で出力してやれば良いと思います。

簡単にですが、サンプルを。

<?php
if (auth()) {//認証処理
 $file = "/path/to/images/img_" . $_GET['img'] . ".jpg";
} else {
 $file = "/path/to/images/error.jpg";
}
header("Content-type: image/jpg");
readfile($file);
?>

loader.phpとして保存して、以下の様にアクセスします。

<img src="path/loader.php?img=12345">

$_GET['img']の妥当性検査や、画像の拡張子による処理変更、Content-legthの出力、Winサーバならreadfileがバイナリセーフかなど、細かい所は手を入れてください。

もちろん、認証を経由して後悔したい画像を置くディレクトリ(サンプルでは/path/to/images/)はHTTPでアクセスできない所に置く必要があります。

URLはダミーです。すいません。

http://jp2.php.net/manual/ja/function.header.php

◎質問者からの返答

これも、同等ですね

ただ、サンプルがあるのでわかりやすいです


3 ● yoshifumi1975
●22ポイント ベストアンサー

http://www.shtml.jp/htaccess/referer.html

このURLにありますように、referer の値で制限をかけれます。

以下のようにすると、RefererのURLに「http://www\.yourdomain\.com」が含まれているかどうかでチェックしています。

Refererっていうのは、どのページから来たとか、どのページで表示されているとかが取れる値です。

SetEnvIf Referer "^http://www\.yourdomain\.com" ref_ok

order deny,allow

deny from all

allow from env=ref_ok

◎質問者からの返答

ほうほう、これは、大変面白いです

そんなに協力に画像を保護する必要もないので

これ解決方法が良いかもしれません


4 ● fonya3
●22ポイント

a) 画像をWebで不可視のディレクトリに保存しておいてそのつど動的に出力する

b) 表示したページの画像を右クリックで保存できないようにJavaScriptで制御する

という方針になるかと思います。

http://www.2ones.com/bidders+/index.php

◎質問者からの返答

3の方の回答に、JavaScript の制御を加えると良い形になりそうです

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ