> 백엔드 개발 > PHP 튜토리얼 > 碰到一个无法获取来路的奇怪问题

碰到一个无法获取来路的奇怪问题

WBOY
풀어 주다: 2016-06-23 13:48:11
원래의
1117명이 탐색했습니다.

日志代码:

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

echo '<pre class="brush:php;toolbar:false">';print_r($_SERVER);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判断来源进行屏蔽了。

用你提供的网址测试了一下
[HTTP_REFERER] => http://newchat.flirt.ru/go.php?url=http://localhost/test.php
是拿到HTTP_REFERER的,
估计不是用header直接跳过来。

这样就可以根据HTTP_REFERER判断来源进行屏蔽了。



有点奇怪,为什么我获取到HTTP_REFERER是空的呢
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿