使用$_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
echo '';print_r($_server);echo '
';
如果直接在浏览器输入http://localhost/test.php 是获取不到http_referer的,
另外通过header跳转的,也获取不到http_referer。
用你提供的网址测试了一下
[http_referer] => http://newchat.flirt.ru/go.php?url=http://localhost/test.php
是拿到http_referer的,
估计不是用header直接跳过来。
这样就可以根据http_referer判断来源进行屏蔽了。
用你提供的网址测试了一下
[http_referer] => http://newchat.flirt.ru/go.php?url=http://localhost/test.php
是拿到http_referer的,
估计不是用header直接跳过来。
这样就可以根据http_referer判断来源进行屏蔽了。
有点奇怪,为什么我获取到http_referer是空的呢
