PHP防止站外链接以及$_SERVER["HTTP_REFERER"]
2010-10-13 10:49
731 查看
<?php session_start(); if(!isset($_SESSION['id'])or !isset($_SESSION['member'])){ echo "<mce:script type="text/javascript"><!-- alert('您没有登录或超时');history.back; // --></mce:script>";//验证session exit(); } $ref=$_SERVER['HTTP_REFERER']; if($ref==''){ echo '对不起,不允许从地址栏访问'; }else{ $url=parse_url($ref); if($url[host]!='127.0.0.1'&& $url[host]!='localhost'){ echo '不允许盗链'; exit(); } } ?>
PHP手册中的官方解释:
"HTTP_REFERER"
链接到当前页面的前一页面的 URL 地址。不是所有的用户代理(浏览器)都会设置这个变量,而且有的还可以手工修改HTTP_REFERER。因此,这个变量不总是真实正确的。
总结:只有点击超链接(即<A href=...>) 打开的页面才有HTTP_REFERER环境变量, 其它如 window.open()、 window.location=...、window.showModelessDialog()等打开的窗口都没有HTTP_REFERER 环境变量。
相关文章推荐
- PHP中的$_SERVER["HTTP_REFERER"] 以及 $_SERVER["REQUEST_URI"];
- PHP中的$_SERVER["HTTP_REFERER"]用法浅谈
- PHP 防止盗链$_SERVER["HTTP_REFERER"]的用法举例
- PHP中的$_SERVER[\"HTTP_REFERER\"]用法浅谈
- Request.ServerVariables("HTTP_REFERER")的工作方式
- .PHP中的$_SERVER["HTTP_REFERER"]
- PHP中的$_SERVER["HTTP_REFERER"]用法浅谈
- 关于 Request.ServerVariables("HTTP_REFERER") 运行时会出错的原因
- PHP中的$_SERVER["HTTP_REFERER"]用法
- PHP中$_SERVER['HTTP_REFERER']的反盗链使用
- Request.ServerVariables("HTTP_REFERER")的工作方式
- Request.ServerVariables("HTTP_REFERER")不能使用
- php在服务器上 $_SERVER['HTTP_REFERER'] 出现Undefined index: HTTP_REFERER 解决方法
- PHP中的$_SERVER["HTTP_REFERER"]用法浅谈
- PHP中的$_SERVER["HTTP_REFERER"]用法浅谈
- Request.ServerVariables(”HTTP_REFERER”)防止下载盗链
- ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER方法探讨
- PHP $_SERVER["QUERY_ST…
- php中$_SERVER参数HTTP_X_FORWARDED_FOR & REMOTE_ADDR与获取IP
- .net中,WEB服务器错误,"http://1.1 500 server error" 解决办法