掃描二維碼關注

首頁 APP開(kāi)發小(xiǎo)程序開(kāi)發 微信公衆号 網站建設 營銷推廣 經典案列 産品服務 關于我們

“學習(xí)不僅是掌握知識”

向書(shū)本學習(xí),還要向實踐學習(xí)、向生活學習(xí)。消化已有(yǒu)知識,
而且要力求有(yǒu)所發現、有(yǒu)所發明(míng)、有(yǒu)所創造

網站的(de)防盜鏈系統是如(rú)何做的(de)?

2019/3/8 18:58:23

網站的(de)防盜鏈系統是如(rú)何做的(de)?

防盜鏈原理(lǐ):
  http标準協議中有(yǒu)專門的(de)字段記錄referer

  一來可(kě)以追溯上(shàng)一個(gè)入站地(dì)址是什(shén)麽

  二來對于資源文(wén)件(jiàn),可(kě)以跟蹤到(dào)包含顯示他(tā)的(de)網頁地(dì)址是什(shén)麽。

  因此所有(yǒu)防盜鏈方法都(dōu)是基于這個(gè)Referer字段

  網上(shàng)比較多的(de)2種

  一種是使用(yòng)apache文(wén)件(jiàn)FileMatch限制(zhì),在httpd.conf中增加 ( 其實也(yě)可(kě)以将把下面的(de)語句存成一個(gè).htaccess文(wén)件(jiàn)),并放(fàng)到(dào)您的(de)網站的(de)根目錄(就是www/html目錄),這樣子别人(rén)就沒有(yǒu)辦法盜連您的(de)網站内容。

  SetEnvIfNoCase Referer "^http://www.youdomain.com/" local_ref=1

  Order Allow,Deny

  Allow from env=local_ref

  Allow from 127.0.0.1

  這種很方便禁止非允許訪問URL引用(yòng)各種資源文(wén)件(jiàn)

  請大(dà)家注意,把第一句"^http://www.youdomain.com/"改爲您的(de)網站,比如(rú)我的(de)網站是: http://www.mydomain.cn

  我應該這麽寫的(de)

  "^http://www.mydomain.cn/"

  第二種是使用(yòng)rewrite,需要增加apache的(de)mode_rewrite,支持.htaccess文(wén)件(jiàn)目錄權限限制(zhì)

  在虛拟主機根目錄增加.htaccess文(wén)件(jiàn),描述從定向,把非本地(dì)地(dì)址refer的(de)圖片文(wén)件(jiàn)都(dōu)從定向到(dào)警告圖片或者警告網頁上(shàng)。

  首先要确認您的(de)服務器(qì)或空間的(de)服務器(qì)解譯引擎爲Apache2,還有(yǒu)支持.htaccess客戶設置文(wén)件(jiàn),

  如(rú)果您有(yǒu)自己的(de)服務器(qì)就請先對./conf/httpd.conf 文(wén)件(jiàn)做以下修改

  找到(dào):#LoadModule rewrite_module modules/mod_rewrite.so

  把前面的(de) # 給取消

  找到(dào)等一個(gè) AllowOverride None 改爲 AllowOverride All

  重啓Apache2服務器(qì)

  接下就是做一個(gè) .htaccess 文(wén)件(jiàn)了,其 .htaccess 文(wén)件(jiàn)内容爲

  RewriteEngine on

  RewriteCond %{HTTP_REFERER} !^http://domain.com/.*$ [NC]

  RewriteCond %{HTTP_REFERER} !^http://domain.comt$ [NC]

  RewriteCond %{HTTP_REFERER} !^http://www.domain.com/.*$ [NC]

  RewriteCond %{HTTP_REFERER} !^http://www.domain.com$ [NC]

  RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://youdomain.com/err.html [R,NC]

  其中有(yǒu)色的(de)地(dì)方都(dōu)是要改爲您的(de):

  紅色:就是改爲您提供下載頁面的(de)地(dì)址,也(yě)就是隻有(yǒu)通過這個(gè)地(dì)址才可(kě)以下載您所提供的(de)東東。

  藍色:就是要保護文(wén)件(jiàn)的(de)擴展名(以|分(fēn)開(kāi)),也(yě)就是說以這些爲擴展名的(de)文(wén)件(jiàn)隻有(yǒu)通過紅色的(de)地(dì)址才可(kě)以訪問。

  綠(lǜ)色:如(rú)果不是通過紅色的(de)地(dì)址訪問藍色這些爲擴展名的(de)文(wén)件(jiàn)時就回重定向到(dào)綠(lǜ)色地(dì)址上(shàng)。

  這個(gè)方法有(yǒu)個(gè)好處是,不同的(de)虛拟主機用(yòng)不同的(de)描述定義。

  接下就是怎麽用(yòng) .htaccess 文(wén)件(jiàn)來實現防盜鏈了。

  首先要在空間上(shàng)建兩個(gè)目錄(當然目錄名随您),一個(gè)爲 web 另一個(gè)爲 down ,

  web 是用(yòng)來放(fàng)下載頁面的(de)(或下載程序),down 當然就是放(fàng)您提供的(de)東東的(de)啦,

  把 .htaccess 文(wén)件(jiàn)的(de)紅色部分(fēn)改一下,改爲http://mydomain.com/web。藍色部分(fēn)

  改爲您要保護文(wén)件(jiàn)的(de)擴展名。綠(lǜ)色部分(fēn)改爲http://mydomain.com/web。改後保存

  .htaccess 文(wén)件(jiàn)把它上(shàng)傳到(dào) down 目錄。

  還有(yǒu)第三種:

  在解決plog禁止盜鏈的(de)時候,發現個(gè)問題,也(yě)算個(gè)好方法。

  plog把所有(yǒu)資源都(dōu)自己管理(lǐ)起來,用(yòng)resserver.php來動态顯示,這樣統一的(de)入口方便添加權限操作。

  同時造成上(shàng)面2種方法無法使用(yòng),因爲不再是apache直接訪問資源文(wén)件(jiàn),而是php通過文(wén)件(jiàn)讀(dú)取。

  因此隻能(néng)在代碼中做手腳:在讀(dú)取資源文(wén)件(jiàn)輸出之前,加如(rú)下判斷代碼

  引用(yòng)

  $referer = $_SERVER['HTTP_REFERER'];

  $selfurl = $_SERVER['HTTP_HOST'];

  if(false == strpos($referer,$selfurl))

  {

  echo '非法盜鏈!';

  exit(1);

  }

  這裏是直接看引用(yòng)地(dì)址中是否包含host地(dì)址,不過原理(lǐ)就是這樣,判斷referer是否是本站地(dì)址。
 


深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04

咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967

更多可(kě)以了解的(de)信息

客戶案列
新聞資訊
資質榮譽
團隊風采
項目進度查詢

售前QQ咨詢
QQ溝通 項目QQ溝通

精銳軟件(jiàn)

Copyright© 2018-2023 深圳市無窮大軟件技術有限公司 All Rights Reserved. 京ICP證000000号 公安備案号:粵公網安備44030502009460号