狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Apache實現圖片防盜鏈

admin
2012年4月3日 23:41 本文熱度 2645
Apache實現圖片防盜鏈以及,顯示一張“禁止盜鏈”的圖片,我們可以用mod_rewrite 來實現。
假設充許連結圖片的主機域名為:www.php100.com
修改httpd.conf
SetEnvIfNoCase Referer "^" local_ref=1
<FilesMatch ".(gif|jpg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
這個簡單的應用不光可以解決圖片盜鏈的問題,稍加修改還可以防止任意文件盜鏈下載的問題。
使用以上的方法當從非指定的主機連結圖片時,圖片將無法顯示。
如果希望顯示一張“禁止盜鏈”的圖片,我們可以用mod_rewrite 來實現。
首先在安裝 apache 時要加上 --enable-rewrite 參數加載 mod_rewrite 模組。
假設“禁止盜鏈”的圖片為abc.gif,我們在 httpd.conf 中可以這樣配置:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?demo.com.cn /.*$ [NC]
RewriteRule \.(gif|jpg)$ abc.gif [R,L]
DocumentRoot "/usr/local/apache/htdocs"
#設置存放站點html文件的目錄。
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
#設置/目錄的指令。具體地說明:
Option:定義在目錄內所能執行的操作。
None:表示只能瀏覽,
FollowSymLinks:允許頁面連接到別處,
ExecCGI:允許執行CGI,
MultiViews:允許看動畫或是聽音樂之類的操作,
Indexes:允許服務器返回目錄的格式化列表,
Includes:允許使用SSI。這些設置可以復選。
All:則可以做任何事,但不包括MultiViews。
AllowOverride:加None參數表示任何人都可以瀏覽該目錄下的文件。
另外的參數有:FileInfo、AuthConfig、Limit。

該文章在 2012/4/3 23:41:26 編輯過

全部評論2

admin
2012年4月4日 0:1

利用Apache實現禁止圖片盜鏈

1、假設充許連結圖片的主機域名為:www.naojinjizhuanwan.com  2、修改httpd.conf
SetEnvIfNoCase Referer "^http://www.naojinjizhuanwan.com/" local_ref=1
<FilesMatch ".(gif│jpg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>

  這個簡單的應用不光可以解決圖片盜鏈的問題,稍加修改還可以防止任意文件盜鏈下載的問題。
  使用以上的方法當從非指定的主機連結圖片時,圖片將無法顯示,如果希望顯示一張“禁止盜鏈”的圖片,我們可以用mod_rewrite 來實現。
  首先在安裝 apache 時要加上 --enable-rewrite 參數加載 mod_rewrite 模組。
  假設“禁止盜鏈”的圖片為abc.gif,我們在 httpd.conf 中可以這樣配置:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?phpnet.cn /.*$ [NC]
RewriteRule .(gif│jpg)$ http://[url=http://www.naojinjizhuanwan.com/]www.naojinjizhuanwan.com/abc.gif[/url] [R,L]


該評論在 2012/4/4 0:02:43 編輯過
admin
2012年4月4日 0:5

網站圖像防盜----Apache配置妙法

需要解決的問題

簡單的說,這里有兩種不同的盜用行為:
1. 使用HTML標記IMG在自己的網站中引用網站的圖片。
2. 從網站上下載圖片,然后放在自己的網站上。

對于第一種的盜用行為,合法網站的圖片被用來美化裝飾其它網站,這種盜用對合法網站的損害比較大,因為訪問非法網站的訪問者其實是從合法網站獲取圖片的,合法網站的日志文件充滿了訪問請求記錄,并且帶寬被非法訪問消耗,而合法網站卻沒有得到任何好處。這種類型的盜用通過技術手段完全可以被防止。

第二種類型的盜用相對來說比較陰險,瀏覽者在非法網站直接訪問非法的圖片,而合法網站的版權受到侵害,卻得不到賠償,甚至無法發現這種盜用。因為Web的工作方式對這種類型的盜用實際上無法被阻止,但是可以使得這種盜用更加困難。

完全杜絕這兩種盜用行為是不現實的,但是通過技術手段可以使得這種盜用非常困難。在Apache環境下,通過配置可以限制網站圖片被盜用。

解決方法

如下配置可以存放在服務器配置文件httpd.conf中,或者存放在.htaccess文件中(開啟AllowOverride All),最后的效果是一樣的:在這些命令作用的范圍內,只有從本網站引用的圖片才可以被訪問。

SetEnvIfNoCase Referer "^http://my.apache.org/" local_ref=1
SetEnvIf Request_URI "(.)*logo" local_ref=0
<FilesMatch ".(gif│jpg│png│jpeg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>

解釋:

標識需要保護的文件

<FilesMatch ".(gif│jpg│png│jpeg)">
</FilesMatch>

作為網站管理員,最大的希望就是能夠保護網站上所有文檔,但是從技術角度考慮這種想法是不現實的,因此我們這里只討論對圖片文件的保護。作為保護的第一步,首先需要標識出需要保護的文件,然后才能進一步對被標識的文件進行保護。

Referer HTTP頭字段

當用戶訪問Web服務器請求一個頁面時,用戶瀏覽器發送的HTTP請求中會有一個被稱為HTTP請求頭(HTTP Request Header)的信息,這個頭信息中包含客戶請求的一些信息,例如發出請求客戶主機的瀏覽器版本、用戶語言、用戶操作系統平臺、用戶請求的文檔名等,這些信息以變量名/變量值的方式被傳輸。

在這些信息中,Referer字段對于實現防止圖片盜用非常重要。Referer字段指定客戶端最后一個頁面的URL地址。例如,如果用戶訪問頁面A,然后點擊在頁面A上到頁面B的鏈接,訪問頁面B的HTTP請求會包括一個Referer字段,該字段會包括這樣的信息“這個請求是來自于頁面A”。如果一個請求不是來自于某個頁面,而是用戶通過直接在瀏覽器地址欄輸入頁面A的URL地址的方式來訪問頁面A,那么在HTTP請求中則不會包括Referer字段。這樣對于我們防止盜鏈有什么幫助呢?Referer字段是幫助判斷對圖像的請求是來自自己的頁面,還是來自其它網站。

使用SetEnvIf對圖像進行標記

SetEnvIfNoCase Referer "^http://my.apache.org/" local_ref=1

作為一個簡單的例子,假設需要保護的網站的主頁面為http://my.apache.org,這時候希望限制所有不是源于本網站的網絡訪問請求(例如只允許訪問包含在本網站頁面內的圖片)。

當Apache處理一個請求時,它會檢查HTTP請求頭中的Referer字段,如果該請求來源于本網站(也就是請求頁面的URL為本網站域名),則設置環境變量local_ref為1。

在雙引號中的字符串是一個正則表達式,只有匹配該正則表達式,環境變量才會被設置。本文不討論如何使用正則表達式,這里只需要理解SetEnvIf*命令會使用正則表達式作為參數。

SetEnvIfNoCase命令的“NoCase”部分表示這里的正則表達式忽略大小寫,'http://my.apache.org/'、'http://My.Apache.Org/'或 'http://MY.APACHE.ORG/'都可以匹配條件。

允許其它網站的友情連接引用本站logo

SetEnvIf Request_URI "(.)*logo" local_ref=0

表示不在SetEnvIfNoCase Referer "^http://my.apache.org/" local_ref=1范圍內,但可以被放行的特例,本例表示url中包含logo字樣即可訪問。

在訪問控制中使用環境變量

Order Allow,Deny
Allow from env=local_ref

Apache配置文件中的Order、Allow和Deny命令可以實現對文檔的基于環境變量的訪問控制,使用Order、Allow和Deny命令首先要考慮的是Allow和Deny命令的順序對于Apache處理結果的影響,應該以下面的方式使用:
Order Allow,Deny
這里表示Apache首先處理該HTTP請求相關的Allow命令,然后處理相關的Deny命令。這種處理方式的默認策略是Deny,所以除非有明確的允許的設置,否則該請求就會被拒絕,任何非法訪問將無法成功。

Allow from env=local_ref

這樣只有在local_ref變量被定義的情況下,該請求才會被允許;否則其它所有請求和訪問將會被拒絕,因為這些請求不滿足Allow條件。
注意,請不要在.htaccess和httpd.conf中使用容器命令,這里不需要該容器命令,除非有特殊的需求,例如希望Get請求和Post請求進行不同的處理。

對圖片進行水印處理

上面介紹的方法并不能完全防止圖像盜鏈,這是因為有些執著的盜用者可以偽造Referer值來盜用圖片,使相關設置失效,所以不可能完全防止網站圖片被盜鏈,但是上面采取的措施會使得盜鏈變得很困難。

此外,還有一個防止圖片被盜用的方法,就是對網站的圖片都進行水印處理。對一個數字圖片進行水印處理是指在圖片中加入一個特殊的簽名編碼,并且可以進行驗證和檢測,數字水印并不會降低圖片的質量,甚至可以實現圖像被切割以后的剩余部分仍然會包括水印信息。圖片被再次編輯、打印,并再次掃描以后,水印仍然可以被檢測到。因此,水印技術是一個非常好的保護圖片不被盜用的技術。

記錄盜用請求

SetEnvIfNoCase Referer "!^http://my.apache.org/" not_local_ref=1
SetEnvIfNoCase Request_URI ".(gif│jpg)" is_image=1
RewriteEngine On
RewriteCond ${ENV:not_local_ref} =1
RewriteCond ${ENV:is_image} =1
RewriteRule .* - [Last,Env=poach_attempt:1]
CustomLog logs/poachers_log CLF env=poach_attempt

在httpd.conf文件中添加如上命令,會在 apache安裝路徑/logs/poachers_log文件中記錄所有具有非法的Referer頭信息的訪問請求

在上面代碼中,頭兩行為條件設置標記(也就是沒有正確的本地Referer的圖片文件),RewriteCond檢測是否該標記被設置,然后RewriteRule設置第三個標記,最后一行使得這樣的訪問請求被記錄在特定的文件中。


該評論在 2012/4/4 0:06:55 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved