ソースを取得できないという奇妙な問題が発生しました
ログ コード:
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 として保存
<br />echo '<pre class="brush:php;toolbar:false">';<br />print_r($_SERVER);<br />echo '
';
ログイン後にコピー
ブラウザに http://localhost/test.php を直接入力すると、HTTP_REFERER、
は取得されません- ----解決案------また、ヘッダーを飛び越えるとHTTP_REFERERを取得できません。
header('location:http://localhost/test.php');
?>
-----ソリューションのアイデア--- ------------------指定した URL でテストしました
[HTTP_REFERER] => http://newchat.flirt。 go.php?url=http://localhost/test.php
HTTP_REFERER を取得しました。
ヘッダーを使用して直接ジャンプしなかったようです。
このようにして、HTTP_REFERER に基づいて送信元を特定し、ブロックすることができます。