php--防盗链简介
2016-11-29 00:19
162 查看
php中 有个预定义全局函数 $_SERVER,里面可以得到很多本地和访问信息,其中常用的有
REFER
DOCUMENT_ROOT-------apache的默认存储目录
REMOTE_ADDR-----------访问当前页面的的机器ip地址
HTTP_HOST ----------------主机名
SERVER_PORT------------端口号
REQUEST_URI-------------请求的串
什么是URI,举例说明一下
http://www.163.com/1/2/index.html
其中/1/2/index.html是URI
在php中获取$_SERVER['HTTP_REFERER']
如果是相同主机名的网页访问内部页面,会在访问头信息中包含reference信息,可以通过server参数获取。
只要这个返回的字串是本网地址段内即可
//判断是否包含这个字头,如果包含说明是来自内部的网站
if (isset($_SERVER['HTTP_REFERER'])){
//判断这个字串是否和本网站的ip段相同,0就是说从前面开始是一样的
if(strpos($_SERVER['HTTP_REFERER'],"http://localhost/http")==0){
//正常处理流程
}else{
//盗链,跳转到盗链页面
header("Location:warning.php")
}
}else{
盗链
}
REFER
DOCUMENT_ROOT-------apache的默认存储目录
REMOTE_ADDR-----------访问当前页面的的机器ip地址
HTTP_HOST ----------------主机名
SERVER_PORT------------端口号
REQUEST_URI-------------请求的串
什么是URI,举例说明一下
http://www.163.com/1/2/index.html
其中/1/2/index.html是URI
在php中获取$_SERVER['HTTP_REFERER']
如果是相同主机名的网页访问内部页面,会在访问头信息中包含reference信息,可以通过server参数获取。
只要这个返回的字串是本网地址段内即可
//判断是否包含这个字头,如果包含说明是来自内部的网站
if (isset($_SERVER['HTTP_REFERER'])){
//判断这个字串是否和本网站的ip段相同,0就是说从前面开始是一样的
if(strpos($_SERVER['HTTP_REFERER'],"http://localhost/http")==0){
//正常处理流程
}else{
//盗链,跳转到盗链页面
header("Location:warning.php")
}
}else{
盗链
}