碰到一个无法获取来路的奇怪问题
日志代码:
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参数换上你的网址,也可以跳转到你的网站。
我现在目的是要屏蔽掉这些乱七八糟的来路访问。
------解决思路----------------------$_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的,
------解决思路----------------------另外通过header跳转的,也获取不到HTTP_REFERER。
header('location:http://localhost/test.php');
?>
------解决思路----------------------用你提供的网址测试了一下
[HTTP_REFERER] => http://newchat.flirt.ru/go.php?url=http://localhost/test.php
是拿到HTTP_REFERER的,
估计不是用header直接跳过来。
这样就可以根据HTTP_REFERER判断来源进行屏蔽了。
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn