PHP防盜鏈的基本思想&&防盜鏈的設置方法

  PHP防盜鏈的基本思想&&防盜鏈的設置方法php

  網站盜鏈會大量消耗被盜鏈網站的帶寬,而真正的點擊率也許會很小,嚴重損害了被盜鏈網站的利益。本文主要介紹用PHP實現防盜鏈的方法以及基本思想,但願對你有幫助,一塊兒來看。數據庫

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

PHP防盜鏈的基本思想&&防盜鏈的設置方法

  作好防盜鏈工做能給網站服務器減小很多壓力,這裏咱們分享一種php防盜鏈的session

  實現方法:dom

  通常的下載的步驟:查找->輸出查找結果列表->進入軟件詳細頁面->點擊下載按鈕->打開下載頁面->點擊下載,開始下載學習

  個人方法就是在下載頁面作文章測試

  首先在網站的公共文件裏定義一個$key=sdkfjwojf32413這至關於一個密鑰同樣網站

  在下載頁面生成一個隨機數:$certcode = '84615354' (每次打開生成的都不同)加密

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

  而後生成軟件的真實下載地址:file.php?id=5&codekey=ksfjwofsdkfsf

  這裏的id是軟件的編號能夠根據他從數據庫找到軟件地址 $codekey=md5($id.$certcode.$key)

  而後把certcode保存到session裏,

  在file.php的參數裏面獲得的codekey和id再從公共文件裏獲得$key 再從session裏獲得$certcode

  對codekey進麼驗證,看是否正確,若是不正確就退出,不然就進行以下操做

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

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

  這樣若是要下載,就必須打開你本身的下載頁面,從你的下載頁面打開地址才能進行下載,並且下載地址每次都不同,由於生成的隨機數不同

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

  拓展閱讀(具體實現):

  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/";//下載地點1

  $ADMIN[url_2] = "";//下載地點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]");

  }?>

  使用方法:將上述代碼保存爲dao4.php,好比我測試用的validatecode.rar在個人站點裏面,則用如下代碼表示下載鏈接.

  文件名?site=1&file=文件

  2.服務器防盜鏈

  3.軟件下載的防盜鏈方法

  //放置下載軟件的根目錄相對於當前腳本目錄的相對目錄

  $fileRelPath = "../../software";

  //例外容許鏈接的網址,注意:自身域名不須要填入,設定爲確定能夠下載,

  // 空字符串("")表示直接輸入網址下載的狀況

  $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)){

  ?>

  其實,反盜鏈方式也有很多, 這裏只列出一個大概思想做爲參考:

  (1)IIS 反盜鏈, 利用ISAPI_Rewrite,可做爲Windows下反盜鏈的一個解決方案;

  (2) 圖片反盜鏈,在圖片中加入水印,雖然盜鏈者能夠達到目的,可是卻也在爲本身的網站作宣傳。

  以上就是PHP防盜鏈的基本思想和設置方法,但願對你們的學習有所幫助。

相關文章
相關標籤/搜索