ホームページ > バックエンド開発 > PHPチュートリアル > 原点を取得できないという奇妙な問題が発生しました

原点を取得できないという奇妙な問題が発生しました

WBOY
リリース: 2016-06-23 13:48:11
オリジナル
1116 人が閲覧しました

ログ コード:

xxx.com "GET HTTP/1.0" "http://newchat.flirt.ru/go.php?url=http://xxx.com/" "Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.16" 162.244.10.69.1412582961752120 yq28
ログイン後にコピー


$_SERVER["HTTP_REFERER"] を使用すると、原点を取得できません。何が起こっていますか?

http://newchat.flirt.ru/go.php?url=http://xxx.com/ の背後にある URL パラメーターを独自の URL に置き換えると、Web サイトにジャンプすることもできます。

私の現在の目標は、これらのランダムな訪問をブロックすることです。


ディスカッションに返信(解決策)

$_SERVER["HTTP_REFERER"] URL を分析するだけです

$_SERVER["HTTP_REFERER"] は送信元アドレスです。

ただし、ユーザーがブラウザに URL を直接入力した場合、リンクを通じてその URL にジャンプすることはありません。
この方法では、送信元アドレスがないため、$_SERVER['HTTP_REFERER'] は空になります。

test.php として保存

echo '<pre class="brush:php;toolbar:false">';print_r($_SERVER);echo '
';
ログイン後にコピー

ブラウザに http://localhost/test.php を直接入力しても HTTP_REFERER は取得できません

また、ヘッダーを飛び越えると HTTP_REFERER は取得できません。
header('location:http://localhost/test.php');
?>

指定した URL でテストしました
[HTTP_REFERER] => .ru/go.php?url=http://localhost/test.php
HTTP_REFERER を取得しました。
ヘッダーを使用して直接ジャンプしなかったようです。

このようにして、HTTP_REFERER に基づいて送信元を特定し、ブロックすることができます。

提供された URL でテストしました
[HTTP_REFERER] => http://newchat.flirt.ru/go.php?url=http://localhost/test.php
HTTP_REFERER を取得しました
ヘッダーを使用して直接ジャンプすることはおそらく不可能です。

このようにして、HTTP_REFERER に基づいて送信元を特定し、ブロックすることができます。



ちょっと不思議ですが、なぜ取得した HTTP_REFERER が空なのか
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート