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