熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

PHP做好防盜鏈的設置方法

2013-11-15 12:24:51  來源: PHP編程 

  盜鏈是指服務提供商自己不提供服務的內容通過技術手段繞過其它有利益的最終用戶界面(如廣告)直接在自己的 網站上向最終用戶提供其它服務提供商的服務內容騙取最終用戶的浏覽和點擊率受益者不提供資源或提供很少的資源而真正的服務提供商卻得不到任何的收 益做好防止盜鏈的工作是每個網站開發者的重要工作

  做好防盜鏈工作能給網站服務器減少不少壓力這裡我們分享一種php防盜鏈的實現方法

  一般的下載的步驟查找->輸出查找結果列表->進入軟件詳細頁面->點擊下載按鈕->打開下載頁面>點擊下載開始下載

  我的方法就是在下載頁面做文章

  首先在網站的公共文件裡定義一個$key=sdkfjwojf這相當於一個密鑰一樣

  在下載頁面生成一個隨機數$certcode = (每次打開生成的都不一樣)

  然後用以上兩個變量和軟件的ID生成一個md()加密串

  然後生成軟件的真實下載地址filephp?id=&codekey=ksfjwofsdkfsf

  這裡的id是軟件的編號可以根據他從數據庫找到軟件地址 $codekey=md($id$certcode$key)
然後把certcode保存到session裡

  在filephp的參數裡面得到的codekey和id再從公共文件裡得到$key 再從session裡得到$certcode

  對codekey進麼驗證看是否正確如果不正確就退出否則就進行如下操作

  刪除session(再次打開這個地址就無效了)

  從數據庫裡讀取軟件地址然後讀取軟件內容並輸出(用PHP的文件讀取方法輸出要下載的軟件內容而不是直接把地址給他下載)

  這樣如果要下載就必須打開你自己的下載頁面從你的下載頁面打開地址才能進行下載而且下載地址每次都不一樣因為生成的隨機數不一樣

  別的地方就算連到你的下載地址也是下載不了的

  拓展閱讀(具體實現)

  簡單防盜鏈

  

  1. $ADMIN[defaulturl] = ";//盜鏈返回的地址  
  2. $okaysites = array(""); //白名單   
  3. $ADMIN[url_] = ";//下載地點  
  4. $ADMIN[url_] = "";//下載地點以此類推  
  5.  
  6. $reffer = $HTTP_REFERER;  
  7. if($reffer) {  
  8. $yes = ;  
  9. while(list($domain $subarray) = each($okaysites)) {  
  10. if (ereg($subarray"$reffer")) {  
  11. $yes = ;  
  12. }  
  13. }  
  14. $theu = "url""_""$site";  
  15. if ($ADMIN[$theu] AND $yes == ) {  
  16. header("Location: $ADMIN[$theu]/$file");  
  17. } else {  
  18. header("Location: $ADMIN[defaulturl]");  
  19. }  
  20. } else {  
  21. header("Location: $ADMIN[defaulturl]");  
  22. }?> 

  使用方法:將上述代碼保存為daophp比如我測試用的validatecoderar在我的站點裡面則用以下代碼表示下載連接

  文件名?site=&file=文件

  服務器防盜鏈

  軟件下載的防盜鏈方法

  

  1. //放置下載軟件的根目錄相對於當前腳本目錄的相對目錄  
  2. $fileRelPath = "//software";  
  3. //例外允許連接的網址注意:自身域名不需要填入設定為肯定可以下載  
  4. // 空字符串("")表示直接輸入網址下載的情況  
  5. $excludeReferArr = array("wwwwrenycom" "wrenycom");  
  6. chdir($fileRelPath);  
  7. $fileRootPath = getcwd() "/";  
  8. $filePath=$HTTP_GET_VARS["file"];  
  9. $url=parse_url($_SERVER["HTTP_REFERER"]);  
  10. if($url[host]!=$_SERVER["HTTP_HOST"] && !in_array($referHost $excludeReferArr)){   
  11. ?> 

  其實反盜鏈方式也有不少 這裡只列出一個大概思想作為參考⑴ IIS 反盜鏈 利用ISAPI_Rewrite可作為Windows下反盜鏈的一個解決方案⑵ 圖片反盜鏈在圖片中加入水印雖然盜鏈者可以達到目的但是卻也在為自己的網站做宣傳


From:http://tw.wingwit.com/Article/program/PHP/201311/20900.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.