WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:phpを直リンクさせないようにするにはどうしたらいいですか?

0:[投稿] あじ [MAIL] [2003/01/05 14:42 ][環境:わからない わからない]

突然で申し訳ないですが、
直リン禁止のスクリプトってありますか??

例えば、
ttp://cgiroom.nu/list/level_up/keepout/readme.htm
みたいなスクリプト・・・


1:[回答] しなのむし [2003/01/06 10:39 ]

スクリプトの頭にこんなのを書いておくとか。

<?
$my_site = 'http://www.mysite.me/~mydir'; // アクセスを許すURLの頭の部分

$my_site = preg_quote($my_site, '/');

if(!preg_match("/^$my_site/i", $_SERVER['HTTP_REFERER']))
{
echo "Don't call this script directly !!";
exit;
}
?>


2:[質問] あじ [2003/01/06 19:53 ]

お返事ありがとう御座います。

早速それを書き込んでみましたが、
それですと、
アクセスを許可しているところからも
全く入れなくなってしまいました。

たびたびの質問で申し訳ないですが、
どうしてでしょうか?
よろしくお願いします。


3:[回答] しなのむし [2003/01/06 22:23 ]

確認したけどちゃんと動くんだよなぁ。。。
書換えが必要な部分は一行目の
$my_site = 'xxx';
のxxxの部分だけなのですが
例えば
$my_site = 'http://www.parkcity.ne.jp/~chaichan';
とすると
http://www.parkcity.ne.jp/~chaichan
を含む
http://www.parkcity.ne.jp/~chaichan/
http://www.parkcity.ne.jp/~chaichan/qanda/
http://www.parkcity.ne.jp/~chaichan/bin/qanda.cgi
等のページにあるハイパーリンクからのアクセスは出来るはずです。
もしかして許可したいドメイン名が複数あるのでしょうか?


4:[回答] しなのむし [URL] [2003/01/06 23:23 ]

あじさんへ
偶然クロスポスティングしているのを見つけました。
全然構わないのですが、成り行きだけはここで報告してください。
一応見てますんで。


5:[質問] あじ [URL] [2003/01/07 03:10 ]

こんばんは。

結構切羽詰ってるのでいろんなところに書き込んでいるのですが・・・なかなか解決しません。

ところで、
仰るように書き換えているのですが、
upして試してみると
Don't call this script directly !!
と出てしまいます。
許可したいドメインが複数あるわけでもなく、
どうすればいいか判らなくなっています。


6:[回答] しなのむし [2003/01/07 05:28 ]

以下をスクリプトに書いてどこかのハイパーリンクから呼んでみてください。
1、2のいずれかにリンク元のURLは入っていますか?
<?
$HEADERS = getallheaders();
echo "1. {$HEADERS['Referer']}<br>";
echo "2. {$_SERVER['HTTP_REFERER']}";
exit;
?>


7:[回答] しなのむし [2003/01/07 06:03 ]

ついでにこれも試してみてください。

<?
echo "3. {$HTTP_SERVER_VARS['HTTP_REFERER']}";
?>


8:[回答] あじ [URL] [2003/01/07 10:03 ]

おはようございます。

1と3にリンク元urlが出ました。


9:[回答] あじ [URL] [2003/01/07 10:10 ]

これだと初めのスクリプトを書き換えて試してみたら
ちゃんと作動したみたいですが、
どういうことなんでしょうか?


10:[回答] しなのむし [URL] [2003/01/07 11:42 ]

たぶんPHPのバージョンのせいでしょう。
仕様変更が激しすぎるのが珠に瑕。(^^;

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World