PHP防盜鏈的基本思想 防盜鏈的設(shè)置方法
盜鏈?zhǔn)侵阜?wù)提供商自己不提供服務(wù)的內(nèi)容,通過(guò)技術(shù)手段繞過(guò)其它有利益的最終用戶(hù)界面(如廣告),直接在自己的網(wǎng)站上向最終用戶(hù)提供其它服務(wù)提供商的服務(wù)內(nèi)容,騙取最終用戶(hù)的瀏覽和點(diǎn)擊率。受益者不提供資源或提供很少的資源,而真正的服務(wù)提供商卻得不到任何的收益。做好防止盜鏈的工作,是每個(gè)網(wǎng)站開(kāi)發(fā)者的重要工作。
做好防盜鏈工作能給網(wǎng)站服務(wù)器減少不少壓力,這里我們分享一種php防盜鏈的實(shí)現(xiàn)方法:
一般的下載的步驟:查找->輸出查找結(jié)果列表->進(jìn)入軟件詳細(xì)頁(yè)面->點(diǎn)擊下載按鈕->打開(kāi)下載頁(yè)面->點(diǎn)擊下載,開(kāi)始下載
我的方法就是在下載頁(yè)面做文章
首先在網(wǎng)站的公共文件里定義一個(gè)$key=sdkfjwojf32413這相當(dāng)于一個(gè)密鑰一樣
在下載頁(yè)面生成一個(gè)隨機(jī)數(shù):$certcode = '84615354' (每次打開(kāi)生成的都不一樣)
然后用以上兩個(gè)變量和軟件的ID生成一個(gè)md5()加密串
然后生成軟件的真實(shí)下載地址:file.php?id=5&codekey=ksfjwofsdkfsf
這里的id是軟件的編號(hào)可以根據(jù)他從數(shù)據(jù)庫(kù)找到軟件地址 $codekey=md5($id.$certcode.$key)
然后把certcode保存到session里,
在file.php的參數(shù)里面得到的codekey和id再?gòu)墓参募锏玫?key 再?gòu)膕ession里得到$certcode
對(duì)codekey進(jìn)么驗(yàn)證,看是否正確,如果不正確就退出,否則就進(jìn)行如下操作
1、刪除session(再次打開(kāi)這個(gè)地址就無(wú)效了)
2、從數(shù)據(jù)庫(kù)里讀取軟件地址,然后讀取軟件內(nèi)容,并輸出(用PHP的文件讀取方法輸出要下載的軟件內(nèi)容而不是直接把地址給他下載)
這樣如果要下載,就必須打開(kāi)你自己的下載頁(yè)面,從你的下載頁(yè)面打開(kāi)地址才能進(jìn)行下載,而且下載地址每次都不一樣,因?yàn)樯傻碾S機(jī)數(shù)不一樣
別的地方就算連到你的下載地址,也是下載不了的。
拓展閱讀(具體實(shí)現(xiàn)):
1.簡(jiǎn)單防盜鏈
$ADMIN[defaulturl] = "http://www.vvschool.cn/404.htm";//盜鏈返回的地址 $okaysites = array("http://www.vvschool.cn/","http://www.siyizhu.com"); //白名單 $ADMIN[url_1] = "http://www.vvschool.cn/temp/download/";//下載地點(diǎn)1 $ADMIN[url_2] = "";//下載地點(diǎn)2,以此類(lèi)推 $reffer = $HTTP_REFERER; if($reffer) { $yes = 0; while(list($domain, $subarray) = each($okaysites)) { if (ereg($subarray,"$reffer")) { $yes = 1; } } $theu = "url"."_"."$site"; if ($ADMIN[$theu] AND $yes == 1) { header("Location: $ADMIN[$theu]/$file"); } else { header("Location: $ADMIN[defaulturl]"); } } else { header("Location: $ADMIN[defaulturl]"); }?>
使用方法:將上述代碼保存為dao4.php,比如我測(cè)試用的validatecode.rar在我的站點(diǎn)里面,則用以下代碼表示下載連接.
文件名?site=1&file=文件
2.服務(wù)器防盜鏈
3.軟件下載的防盜鏈方法
//放置下載軟件的根目錄相對(duì)于當(dāng)前腳本目錄的相對(duì)目錄 $fileRelPath = "../../software"; //例外允許連接的網(wǎng)址,注意:自身域名不需要填入,設(shè)定為肯定可以下載, // 空字符串("")表示直接輸入網(wǎng)址下載的情況 $excludeReferArr = array("www.wreny.com", "wreny.com"); 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)){ ?>
其實(shí),反盜鏈方式也有不少, 這里只列出一個(gè)大概思想作為參考:
(1)IIS 反盜鏈, 利用ISAPI_Rewrite,可作為Windows下反盜鏈的一個(gè)解決方案;
(2) 圖片反盜鏈,在圖片中加入水印,雖然盜鏈者可以達(dá)到目的,但是卻也在為自己的網(wǎng)站做宣傳。
以上就是PHP防盜鏈的基本思想和設(shè)置方法,希望對(duì)大家的學(xué)習(xí)有所幫助。
- php下通過(guò)偽造http頭破解防盜鏈的代碼
- 使用PHP破解防盜鏈圖片的一個(gè)簡(jiǎn)單方法
- 破解圖片防盜鏈的代碼(asp/php)測(cè)試通過(guò)
- PHP防盜鏈代碼實(shí)例
- php中突破基于HTTP_REFERER的防盜鏈措施(stream_context_create)
- php 破解防盜鏈圖片函數(shù)
- php簡(jiǎn)單防盜鏈實(shí)現(xiàn)方法
- php防盜鏈的常用方法小結(jié)
- php實(shí)現(xiàn)的網(wǎng)絡(luò)相冊(cè)圖片防盜鏈完美破解方法
- php實(shí)現(xiàn)圖片文件與下載文件防盜鏈的方法
- PHP實(shí)現(xiàn)防盜鏈的方法分析
相關(guān)文章
PHP實(shí)現(xiàn)對(duì)xml進(jìn)行簡(jiǎn)單的增刪改查(CRUD)操作示例
這篇文章主要介紹了PHP實(shí)現(xiàn)對(duì)xml進(jìn)行簡(jiǎn)單的增刪改查(CRUD)操作,結(jié)合簡(jiǎn)單實(shí)例形式分析了php針對(duì)xml文件數(shù)據(jù)進(jìn)行載入、修改等相關(guān)操作技巧,需要的朋友可以參考下2017-05-05php中使用key,value,current,next和prev函數(shù)遍歷數(shù)組的方法
這篇文章主要介紹了php中使用key,value,current,next和prev函數(shù)遍歷數(shù)組的方法,較為詳細(xì)的分析了php中數(shù)組遍歷的常用技巧與實(shí)例用法,需要的朋友可以參考下2015-03-03php實(shí)現(xiàn)基于PDO的預(yù)處理示例
這篇文章主要介紹了php實(shí)現(xiàn)基于PDO的預(yù)處理,結(jié)合實(shí)例形式分析了php實(shí)現(xiàn)pdo預(yù)處理的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2017-03-03PHP 反射機(jī)制實(shí)現(xiàn)動(dòng)態(tài)代理的代碼
通過(guò)代理類(lèi)ClassOneDelegator來(lái)代替ClassOne類(lèi)來(lái)實(shí)現(xiàn)他的方法。2008-10-10phpstorm 正則匹配刪除空行、注釋行(替換注釋行為空行)
這篇文章主要介紹了phpstorm 正則匹配刪除空行、注釋行,需要的朋友可以參考下2018-01-01PHP面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別詳解
這篇文章主要給大家介紹了PHP面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別,面向過(guò)程編程是將代碼組織為一系列函數(shù)或過(guò)程,面向?qū)ο缶幊淌菍⒋a組織為對(duì)象,其中包含屬性和方法,還有不懂的朋友可以參考閱讀本文2023-11-11php實(shí)現(xiàn)jQuery擴(kuò)展函數(shù)
今天在運(yùn)行書(shū)上的jQuery代碼時(shí),不知道是書(shū)上弄錯(cuò)了,還是我的jQuery版本的問(wèn)題,例子上面有一個(gè)jQuery函數(shù)不存在。2009-10-10使用JSON實(shí)現(xiàn)數(shù)據(jù)的跨域傳輸?shù)膒hp代碼
某網(wǎng)站后臺(tái)用php腳本得到一個(gè)JSON格式的數(shù)據(jù),交給前臺(tái)javascript進(jìn)行處理,使用JSON實(shí)現(xiàn)數(shù)據(jù)的跨域調(diào)用2011-12-12