php防盗链
Ⅰ 这段php代码中,如何添加referer防盗链网址,实现跳转
跟location类似,换成referer,值就是实际的值
Ⅱ 如何给后缀.php的设置防盗链了
一般的下载的步骤:查找->输出查找结果列表->进入软件详细页面->点击下载按钮->打开下载页面->点击下载,开始下载
我的方法就是在下载页面做文章
首先在网站的公共文件里定义一个$key=sdkfjwojf32413这相当于一个密钥一样
在下载页面生成一个随机数:$certcode = '84615354' (每次打开生成的都不一样)
然后用以上两个变量和软件的ID生成一个md5()加密串
然后生成软件的真实下载地址:file.php?id=5&codekey=ksfjwofsdkfsf
这里的id是软件的编号可以根据他从数据库找到软件地址$codekey=md5($id.$certcode.$key)
然后把certcode保存到session里,
在file.php的参数里面得到的codekey和id再从公共文件里得到$key 再从session里得到$certcode
对codekey进么验证,看是否正确,如果不正确就退出,否则就进行如下操作
1、删除session(再次打开这个地址就无效了)
2、从数据库里读取软件地址,然后读取软件内容,并输出(用PHP的文件读取方法输出要下载的软件内容而不是直接把地址给他下载)
这样如果要下载,就必须打开你自己的下载页面,从你的下载页面打开地址才能进行下载,而且下载地址每次都不一样,因为生成的随机数不一样
别的地方就算连到你的下载地址,也是下载不了的。
Ⅲ PHP防盗链为什么要用两个else
if(isset($_SERVER['HTTP_REFERER'])){
if(strpos($_SERVER['HTTP_REFERER'],"
)==0){
echo"成功";
}else{
header("Location:err.php");
}
}else{
header("Location:err.php");
}
被删除了,内层的else是对应来源页必须是以http://localhost开头的地址,外层的对应的是是否存在来源页,如果只用外层,就会出现来源页是其它页的,只判定内层,如果是直接访问这一页的,就会被跳过,这2个判定,1.防止直接访问本页,2.防止从非localhost的页面访问本页
Ⅳ PHP如何实现防盗链详解
本文实例讲述了php简单防盗链实现方法。分享给大家供大家参考。具体如下:
<?php $ADMIN = array( 'defaulturl'=> 'http://blog.qita.in/images/banner-header.gif', //盗链返回的地址 'url_1' => 'http://blog.qita.in/file', 'url_2' => 'http://blog.qita.in/file1', ); $okaysites = array( 'http://qita.in', 'http://blog.qita.in', //白名单 'http://blog.qita.in/1.html', ); $reffer = $_SERVER['HTTP_REFERER']; if ($reffer) { $yes = 0; while (list($domain, $subarray) = each($okaysites)) { if (ereg($subarray, "$reffer")) { $yes = 1; } } $theu = 'url_' . $_GET['site']; $file = $_GET['file']; if ($ADMIN[$theu] and $yes == 1) { header("Location: $ADMIN[$theu]/$file"); } else { header("Location: $ADMIN[defaulturl]"); } } else { header("Location: $ADMIN[defaulturl]"); } print_r($_SERVER['HTTP_REFERER']); ?>
Ⅳ PHP文件防盗链了,怎么破解呢
用CURL摸拟请求
$url="目标地址";
//.
functiondisguise_curl($url)
{
$curl=curl_init();
//Setupheaders-.0.0.6
//belowwassplitupbecausephp.netsaidthelinewastoolong.:/
$header[0]="Accept:text/xml,application/xml,application/xhtml+xml,";
$header[0].="text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[]="Cache-Control:max-age=0";
$header[]="Connection:keep-alive";
$header[]="Keep-Alive:300";
$header[]="Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[]="Accept-Language:en-us,en;q=0.5";
$header[]="Pragma:";//browserskeepthisblank.
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_USERAGENT,'Googlebot/2.1');
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
curl_setopt($curl,CURLOPT_REFERER,'www.google.com');
curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate');
curl_setopt($curl,CURLOPT_AUTOREFERER,true);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_TIMEOUT,10);
$html=curl_exec($curl);//executethecurlcommand
curl_close($curl);//closetheconnection
return$html;//andfinally,return$html
}
//
$text=disguise_curl($url);
echo$text;
CURLOPT_REFERER这个的值设置成目标网站的域一般都能过。
Ⅵ thinkphp5.0怎么防止网站盗链
简单几行PHP实现防盗链
<?php
//获取referer从a.html来的没有referer参数,而从b.html来的有referer参数
if(isset($_SERVER['HTTP_REFERER']))
{
if(strpos($_SERVER['HTTP_REFERER'],"http://localhost/")==0)//判断$_SERVER['HTTP_REFERER']是不是以http://localhost/开始的
{
echo"username:kyxpassword:123456";
}elseheader("Location:warning.php");//跳转页面到warning.php
}elseheader("Location:warning.php");
?>
Ⅶ PHP文件如何做防盗链
最简单的方法 定义一个常量 做密钥 访问之前判断一下 有该值并正确就执行后面的代码 不正确就die 不过这东西基本不用但 框架写的程序都不存在这个问题
Ⅷ 如何防止 别人php抓取网络数据
试试nginx:
1. ngx_http_limit_conn_mole 可以用来限制单个IP的连接数
http://nginx.org/en/docs/http/ngx_http_limit_conn_mole.html
2. ngx_http_limit_req_mole 可以用来限制单个IP每秒请求数
http://nginx.org/en/docs/http/ngx_http_limit_req_mole.html
3. nginx_limit_speed_mole 可以用来对IP限速
https://github.com/yaoweibin/nginx_limit_speed_mole
或者使用Nginx的fail2ban模块:http://www.fail2ban.org/wiki/index.php/Main_Page
除了上面还可以使用图片/URL防盗链
Ⅸ php图片防盗链 怎么破解
这种一般是通过Refer来防盗链的,一般只能下载图片部署到自己服务器上。
Ⅹ PHP的防防盗链怎么写
页面加入KEY,这个KEY由系统生成,每十分钟自动生成新的KEY