盜鏈?zhǔn)侵阜?wù)提供商自己不提供服務(wù)的內(nèi)容,通過技術(shù)手段繞過其它有利益的最終用戶界面(如廣告),直接在自己的網(wǎng)站上向最終用戶提供其它服務(wù)提供商的服務(wù)內(nèi)容,騙取最終用戶的瀏覽和點(diǎn)擊率。受益者不提供資源或提供很少的資源,而真正的服務(wù)提供商卻得不到任何的收益。做好防止盜鏈的工作,是每個(gè)網(wǎng)站開發(fā)者的重要工作。
做好防盜鏈工作能給網(wǎng)站服務(wù)器減少不少壓力,這里我們分享一種php防盜鏈的實(shí)現(xiàn)方法:
一般的下載的步驟:查找->輸出查找結(jié)果列表->進(jìn)入軟件詳細(xì)頁面->點(diǎn)擊下載按鈕->打開下載頁面->點(diǎn)擊下載,開始下載
我的方法就是在下載頁面做文章
首先在網(wǎng)站的公共文件里定義一個(gè)$key=sdkfjwojf32413這相當(dāng)于一個(gè)密鑰一樣
在下載頁面生成一個(gè)隨機(jī)數(shù):$certcode = '84615354' (每次打開生成的都不一樣)
然后用以上兩個(gè)變量和軟件的ID生成一個(gè)md5()加密串
然后生成軟件的真實(shí)下載地址:file.php?id=5&codekey=ksfjwofsdkfsf
這里的id是軟件的編號可以根據(jù)他從數(shù)據(jù)庫找到軟件地址 $codekey=md5($id.$certcode.$key)
然后把certcode保存到session里,
在file.php的參數(shù)里面得到的codekey和id再從公共文件里得到$key 再從session里得到$certcode
對codekey進(jìn)么驗(yàn)證,看是否正確,如果不正確就退出,否則就進(jìn)行如下操作
1、刪除session(再次打開這個(gè)地址就無效了)
2、從數(shù)據(jù)庫里讀取軟件地址,然后讀取軟件內(nèi)容,并輸出(用PHP的文件讀取方法輸出要下載的軟件內(nèi)容而不是直接把地址給他下載)
這樣如果要下載,就必須打開你自己的下載頁面,從你的下載頁面打開地址才能進(jìn)行下載,而且下載地址每次都不一樣,因?yàn)樯傻碾S機(jī)數(shù)不一樣
別的地方就算連到你的下載地址,也是下載不了的。
拓展閱讀(具體實(shí)現(xiàn)):
1.簡單防盜鏈
- $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,以此類推
- $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]");
- }?>
新聞熱點(diǎn)
疑難解答