3种常用的防盗链的方式
場景說明:網站訪問人數很少,但是網頁訪問很慢,很有可能被盜鏈了,如果網頁被盜鏈,web服務器的訪問日志里會發現瘋狂的訪問請求正從四面八方涌過來,web服務器為了迎接這批訪客而沒有時間處理正常的頁面,這種狀況可能會一直持續好幾個周時間。
被盜鏈的幾種可能情況
1、在人氣非常旺的網站、論壇、社區的網頁里直接引用了(使用標記)你網站上的圖片,或者直接在其他網頁(使用flash或媒體播放插件)里嵌入了你網站上的mp3。
2、在人氣非常旺的網站、論壇、社區里提供了你的資源的下載地址。
3、你網站的資源可能被一些下載軟件列入了“資源候選名單”,當其他人用下載工具下載相同的文件時,下載軟件會自動找上門并且從你的服務器下載。
解決方式
1、判斷引用地址
?
所謂判斷引用地址,就是判斷瀏覽器請求時HTTP頭的Referer字段的值,這個值在php里面可以用 $_SERVER['HTTP_REFERER']屬性取得。幾個例子來說,在正常情況下當用戶在瀏覽 http://1111.com/abc.html 時點擊一個鏈接去到 http://222.com/jacky.mp3 文件時,瀏覽器在發出請求jacky.mp3 資源時還會附帶當刻瀏覽器所處的頁面地址(即http://1111.com/abc.html),所以當你的網站程序接收到下載 jacky.mp3 資源請求的時候,先判斷http的referer字段的值,如果是從 自己的域名(222.com)過來的,則可以認為是合法的連接請求,否則就返回一個錯誤的提示信息。
?
這種方法通常用于圖片、 mp3這種容易被人用html“嵌入”到其他網站的資源,使用這種方法可以防止你的圖片直接出現在別人的網頁里(或者防止mp3直接被其他網站嵌入到 flash播放器里),不過訪客使用下載工具還是可以輕松下載,因為現在的下載工具一般會自動用你的域名構造一個引用地址,所以如果想再進一步防范的話,可以使用一個對應表限制每個資源的引用地址,例如將 jacky.mp3 的引用地址限制為?http://222.com/11.htmlid=12345,這樣下載工具就不太可能構造一個“正確”的引用地址了。
2、使用登錄驗證
這個方法常見于論壇、社區。當訪客請求網站上的一個資源時,先判斷此請求是否通過登錄驗證,如果尚未登錄則返回一個錯誤提示信息。
3、使用圖形驗證碼
使用這個方法可以保證每次下載都是“人”在你的網站上下載,而不是下載工具。因為網上很多介紹使用圖形驗證碼的方法,所以這里就不再重復了。這個方法的缺點是比較容易讓正常的用戶感到麻煩。
?
轉載于:https://www.cnblogs.com/chenhaoyu/p/8618549.html
總結
以上是生活随笔為你收集整理的3种常用的防盗链的方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flask的闪现(message) 请
- 下一篇: Python第一周 学习笔记(1)