網站圖像防盜----Apache配置妙法
添加時間:2011-1-8
添加:
admin
每個網站所有者都在盡力美化自己的網站,使它看上去更酷、更具有吸引力,其中最常見的方法就是使用圖片、Logo及Flash等。但是,這也會帶來一個問題,因為越漂亮、越吸引人的網站,漂亮的圖片和Flash等就容易被別的網站悄悄的盜用。下面我們就一起討論如何防止網站圖像被盜用。
需要解決的問題
簡單的說,這里有兩種不同的盜用行為:
1. 使用HTML標記IMG在自己的網站中引用網站的圖片。
2. 從網站上下載圖片,然后放在自己的網站上。
對于第一種的盜用行為,合法網站的圖片被用來美化裝飾其它網站,這種盜用對合法網站的損害比較大,因為訪問非法網站的訪問者其實是從合法網站獲取圖片的,合法網站的日志文件充滿了訪問請求記錄,并且帶寬被非法訪問消耗,而合法網站卻沒有得到任何好處。這種類型的盜用通過技術手段完全可以被防止。
第二種類型的盜用相對來說比較陰險,瀏覽者在非法網站直接訪問非法的圖片,而合法網站的版權受到侵害,卻得不到賠償,甚至無法發現這種盜用。因為Web的工作方式對這種類型的盜用實際上無法被阻止,但是可以使得這種盜用更加困難。
完全杜絕這兩種盜用行為是不現實的,但是通過技術手段可以使得這種盜用非常困難。在Apache環境下,通過配置可以限制網站圖片被盜用。
標識需要保護的文件
作為網站管理員,最大的希望就是能夠保護網站上所有文檔,但是從技術角度考慮這種想法是不現實的,因此我們這里只討論對圖片文件的保護。
作為保護的第一步,首先需要標識出需要保護的文件,然后才能進一步對被標識的文件進行保護。在Apache配置文件中添加如下內容:
[這里添加保護限制命令]
將容器命令包含在或等容器中,或者單獨列出,不處于任何保護容器中,這樣就會對網站所有文件進行保護,甚至可以存放在.htaccess文件。將該容器放在不同的位置,保護的范圍機會有所不同。
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對圖像進行標記
作為一個簡單的例子,假設需要保護的網站的主頁面為
http://my.apache.org
,這時候希望限制所有不是源于本網站的網絡訪問請求(例如只允許訪問包含在本網站頁面內的圖片)。這里可以使用一個環境變量作為一個標記,如果條件滿足時就設置該變量,如下所示:
SetEnvIfNoCase Referer "^
http://my
\.apache\.org/" local_ref=1
當Apache處理一個請求時,它會檢查HTTP請求頭中的Referer字段,如果該請求來源于本網站(也就是請求頁面的URL為本網站域名),則設置環境變量local_ref為1。
在雙引號中的字符串是一個正則表達式,只有匹配該正則表達式,環境變量才會被設置。本文不討論如何使用正則表達式,這里只需要理解SetEnvIf*命令會使用正則表達式作為參數。
SetEnvIfNoCase命令的“NoCase”部分表示這里的正則表達式忽略大小寫,'http://my.apache.org/'、'http://My.Apache.Org/'或 'http://MY.APACHE.ORG/'都可以匹配條件。
在訪問控制中使用環境變量
Apache配置文件中的Order、Allow和Deny命令可以實現對文檔的基于環境變量的訪問控制,使用Order、Allow和Deny命令首先要考慮的是Allow和Deny命令的順序對于Apache處理結果的影響,應該以下面的方式使用:
Order Allow,Deny
這里表示Apache首先處理該HTTP請求相關的Allow命令,然后處理相關的Deny命令。這種處理方式的默認策略是Deny,所以除非有明確的允許的設置,否則該請求就會被拒絕,任何非法訪問將無法成功。
需要解決的問題
簡單的說,這里有兩種不同的盜用行為:
1. 使用HTML標記IMG在自己的網站中引用網站的圖片。
2. 從網站上下載圖片,然后放在自己的網站上。
對于第一種的盜用行為,合法網站的圖片被用來美化裝飾其它網站,這種盜用對合法網站的損害比較大,因為訪問非法網站的訪問者其實是從合法網站獲取圖片的,合法網站的日志文件充滿了訪問請求記錄,并且帶寬被非法訪問消耗,而合法網站卻沒有得到任何好處。這種類型的盜用通過技術手段完全可以被防止。
第二種類型的盜用相對來說比較陰險,瀏覽者在非法網站直接訪問非法的圖片,而合法網站的版權受到侵害,卻得不到賠償,甚至無法發現這種盜用。因為Web的工作方式對這種類型的盜用實際上無法被阻止,但是可以使得這種盜用更加困難。
完全杜絕這兩種盜用行為是不現實的,但是通過技術手段可以使得這種盜用非常困難。在Apache環境下,通過配置可以限制網站圖片被盜用。
標識需要保護的文件
作為網站管理員,最大的希望就是能夠保護網站上所有文檔,但是從技術角度考慮這種想法是不現實的,因此我們這里只討論對圖片文件的保護。
作為保護的第一步,首先需要標識出需要保護的文件,然后才能進一步對被標識的文件進行保護。在Apache配置文件中添加如下內容:
[這里添加保護限制命令]
將容器命令包含在或等容器中,或者單獨列出,不處于任何保護容器中,這樣就會對網站所有文件進行保護,甚至可以存放在.htaccess文件。將該容器放在不同的位置,保護的范圍機會有所不同。
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對圖像進行標記
作為一個簡單的例子,假設需要保護的網站的主頁面為
http://my.apache.org
,這時候希望限制所有不是源于本網站的網絡訪問請求(例如只允許訪問包含在本網站頁面內的圖片)。這里可以使用一個環境變量作為一個標記,如果條件滿足時就設置該變量,如下所示:
SetEnvIfNoCase Referer "^
http://my
\.apache\.org/" local_ref=1
當Apache處理一個請求時,它會檢查HTTP請求頭中的Referer字段,如果該請求來源于本網站(也就是請求頁面的URL為本網站域名),則設置環境變量local_ref為1。
在雙引號中的字符串是一個正則表達式,只有匹配該正則表達式,環境變量才會被設置。本文不討論如何使用正則表達式,這里只需要理解SetEnvIf*命令會使用正則表達式作為參數。
SetEnvIfNoCase命令的“NoCase”部分表示這里的正則表達式忽略大小寫,'http://my.apache.org/'、'http://My.Apache.Org/'或 'http://MY.APACHE.ORG/'都可以匹配條件。
在訪問控制中使用環境變量
Apache配置文件中的Order、Allow和Deny命令可以實現對文檔的基于環境變量的訪問控制,使用Order、Allow和Deny命令首先要考慮的是Allow和Deny命令的順序對于Apache處理結果的影響,應該以下面的方式使用:
Order Allow,Deny
這里表示Apache首先處理該HTTP請求相關的Allow命令,然后處理相關的Deny命令。這種處理方式的默認策略是Deny,所以除非有明確的允許的設置,否則該請求就會被拒絕,任何非法訪問將無法成功。
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003