1. 什麼是防盜鏈設置中的空Referer,防盜鏈設置Referer
盜鏈是指服務提供商自己不提供服務的內容,通過技術手段繞過其它有利益的最終用戶界面(如廣告),直接在自己的網站上向最終用戶提供其它服務提供商的服務內容,騙取最終用戶的瀏覽和點擊率。受益者不提供資源或提供很少的資源,而真正的服務提供商卻得不到任何的收益。做好防止盜鏈的工作,是每個網站開發者的重要工作。 做好防盜鏈工作能給網站伺服器減少不少壓力,這里我們分享一種php防盜鏈的實現方法: 一般的下載的步驟:查找->輸出查找結果列表->進入軟體詳細頁面->點擊下載按鈕->打開下載頁面->點擊下載,開始下載 我的方法就是在下載頁面做文章 首先在網站的公共文件里定義一個$key=sdkfjwojf32413這相當於一個密鑰一樣 在下載頁面生成一個隨機數:$certcode = '84615354' (每次打開生成的都不一樣) 然後用以上兩個變數和軟體的ID生成一個md5()加密串 然後生成軟體的真實下載地址:file"); chdir($fileRelPath); $fileRootPath = getcwd() ."/"; $filePath=$HTTP_GET_VARS["file"]; $url=parse_url($_SERVER["HTTP_REFERER"]); if($url[host]!=$_SERVER["HTTP_HOST"] && !in_array($referHost, $excludeReferArr)){ ?> 其實,反盜鏈方式也有不少, 這里只列出一個大概思想作為參考: (1)IIS 反盜鏈, 利用ISAPI_Rewrite,可作為Windows下反盜鏈的一個解決方案; (2) 圖片反盜鏈,在圖片中加入水印,雖然盜鏈者可以達到目的,但是卻也在為自己的網站做宣傳。 以上就是PHP防盜鏈的基本思想和設置方法,希望對大家的學習有所幫助。
2. 如何在網站上添加MP3防盜鏈
網頁代碼 你搜索下 很多的
3. 防盜鏈的代碼處理流程
此內容不在自己伺服器上,而通過技術手段,繞過別人放廣告有利益的最終頁,直接在自己的有廣告有利益的頁面上向最終用戶提供此內容。 常常是一些名不見經傳的小網站來盜取一些有實力的大網站的地址(比如一些音樂、圖片、軟體的下載地址)然後放置在自己的網站中,通過這種方法盜取大網站的空間和流量。
為什麼會產生盜鏈
一般瀏覽有一個重要的現象就是一個完整的頁面並不是一次全部傳送到客戶端的。如果請求的是一個帶有許多圖片和其它信息的頁面,那麼最先的一個Http請求被傳送回來的是這個頁面的文本,然後通過客戶端的瀏覽器對這段文本的解釋執行,發現其中還有圖片,那麼客戶端的瀏覽器會再發送一條Http請求,當這個請求被處理後那麼這個圖片文件會被傳送到客戶端,然後瀏覽器會將圖片安放到頁面的正確位置,就這樣一個完整的頁面也許要經過發送多條Http請求才能夠被完整的顯示。基於這樣的機制,就會產生一個問題,那就是盜鏈問題:就是一個網站中如果沒有起頁面中所說的信息,例如圖片信息,那麼它完全可以將這個圖片的連接到別的網站。這樣沒有任何資源的網站利用了別的網站的資源來展示給瀏覽者,提高了自己的訪問量,而大部分瀏覽者又不會很容易地發現,這樣顯然,對於那個被利用了資源的網站是不公平的。一些不良網站為了不增加成本而擴充自己站點內容,經常盜用其他網站的鏈接。一方面損害了原網站的合法利益,另一方面又加重了伺服器的負擔。
如何實現防盜鏈
要實現防盜鏈,我們就必須先理解盜鏈的實現原理,提到防盜鏈的實現原理就不得不從HTTP協議說起,在HTTP協議中,有一個表頭欄位叫referer,採用URL的格式來表示從哪兒鏈接到當前的網頁或文件。換句話說,通過referer,網站可以檢測目標網頁訪問的來源網頁,如果是資源文件,則可以跟蹤到顯示它的網頁地址。有了referer跟蹤來源就好辦了,這時就可以通過技術手段來進行處理,一旦檢測到來源不是本站即進行阻止或者返回指定的頁面。
如果想對自己的網站進行防盜鏈保護,則需要針對不同的情況進行區別對待。如果網站伺服器用的是apache,那麼使用apache自帶的Url Rewrite功能可以很輕松地防止各種盜鏈,其原理是檢查referer,如果referer的信息來自其他網站則重定向到指定圖片或網頁上。
如果伺服器使用的是IIS的話,則需要通過第三方插件來實現防盜鏈功能了,現在比較常用的一款產品叫做ISAPI_Rewrite,可以實現類似於apache的防盜鏈功能。另外對於論壇來說還可以使用「登錄驗證」的方法進行防盜鏈。
在IE或firefox瀏覽器中,我們可以使用HttpWatch抓包工具抓取網頁的表頭信息,該信息就包含了referer段內容,該內容反映的就是用戶是從哪個地址到達當前頁面的。下面使用PHP語句模擬「限制來路鏈接只能是本網站地址」的防盜鏈技術:
<?phpif(isset($_SERVER['HTTP_REFERER'])){//通過字元串處理函數匹配來路URL是否以本站域名打頭,是,則說明非盜鏈if(strpos($_SERVER['HTTP_REFERER']),'http://www.thanks.live')==0){echo "您是通過本站其他頁面鏈接到該頁面";}else{echo "本站禁止盜鏈";}}esle{echo "您是通過類似直接輸入當前URL的方式進入該頁面的";}?>由於referer值是極易偽造的,所以上述方法只是簡單的防盜鏈。
關於防禦方法,有以下3點:
1、不允許referer為空(不建議,因在某些開啟隱私模式的瀏覽器中,或https頁面引用下,referer是空的)
2、地址變更(lighttpd的是根據有效時間,nginx的根據是md5)
3、登錄校驗(如必須登錄網站帳號後才能訪問)
4.可以借鑒效仿crsf token令牌
二、應對方法
前端腳本
實現代碼:
function showImg( url ) {
var frameid = 'frameimg' + Math.random();
window.img = '<img id="img" src=\''+url+'?'+Math.random()+'\' /><script>window.onload = function() { parent.document.getElementById(\''+frameid+'\').height = document.getElementById(\'img\').height+\'px\'; }<'+'/script>';
document.write('<iframe id="'+frameid+'" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>');
}
調用方式:
showImg('圖片地址');
關於防禦方法,有以下3點:
1、不允許referer為空(不建議,因在某些開啟隱私模式的瀏覽器中,或https頁面引用下,referer是空的)
2、地址變更(lighttpd的是根據有效時間,nginx的根據是md5)
3、登錄校驗(如必須登錄網站帳號後才能訪問)
後端代理:
那麼如何才能繞過防盜鏈對所需資源進行抓取???
php實戰
在通常的處理過程中,如果在自己的站點直接引入網路的圖片
這里寫圖片描述
(⊙o⊙)哦,引入鏈接失敗咯啊!!!那麼怎麼用curl處理
畢竟要爬取必要的信息
$url="https://gss0..com/9fo3dSag_xI4khGko9WTAnF6hhy/image/w%3D210/sign=/.jpg";
//$url = str_replace("http:/","http://",$url);
$dir = pathinfo($url);
$host = $dir['dirname'];
$refer = $host.'/';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
header("Content-type: image/jpeg");
print( $data );
然後么,因為直接print了,所以結果是這樣的
這里寫圖片描述
python實戰
Flask響應請求有以下幾種方法:
render_template 返回模板文件
jsonify 返回json格式的數據
Response 自定義返回的數據及類型
當服務端需要返回圖片或者各種格式的文件時,就需要使用Response進行自定義返
4. php格式轉換
你把下載的文件的後綴改了就可以了,比如你下的文件類型為.mp3格式的但是迅雷下載 的是.php你就直接改了後綴就行了,你試一下應該是可以的。那是迅雷的buger
5. 如何將php格式轉化為MP3格式
第一,你肯定是用下載工具下載的,網站有防盜鏈,防迅雷的,請用IE或者別的瀏覽器直接下載,應該知道什麼是直接下載吧
第二,php文件是動態網頁文件,你用記事本打開就可以看見代碼,一般就幾K,你要下的MP3我不相信就幾K
第三,還是請嘗試直接下載,不要用下載工具
6. 怎樣將php文件轉換成mp3
「千千靜聽」打開要轉換格式的音樂文件,在播放列表中右擊需要轉換為MP3格式的歌曲,「轉換格式」,在打開的「轉換格式」對話框中,選擇「編碼格式」及保存位置,「立即轉換」、、