場景說明:網站訪問人數不多,可是網頁訪問很慢,頗有可能被盜鏈了,若是網頁被盜鏈,web服務器的訪問日誌裏會發現瘋狂的訪問請求正從四面八方涌過來,web服務器爲了迎接這批訪客而沒有時間處理正常的頁面,這種情況可能會一直持續好幾個周時間。php
被盜鏈的幾種可能狀況html
一、在人氣很是旺的網站、論壇、社區的網頁裏直接引用了(使用標記)你網站上的圖片,或者直接在其餘網頁(使用flash或媒體播放插件)裏嵌入了你網站上的mp3。
二、在人氣很是旺的網站、論壇、社區裏提供了你的資源的下載地址。
三、你網站的資源可能被一些下載軟件列入了「資源候選名單」,當其餘人用下載工具下載相同的文件時,下載軟件會自動找上門而且從你的服務器下載。web
解決方式瀏覽器
一、判斷引用地址服務器
所謂判斷引用地址,就是判斷瀏覽器請求時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,這樣下載工具就不太可能構造一個「正確」的引用地址了。網站
二、使用登陸驗證spa
這個方法常見於論壇、社區。當訪客請求網站上的一個資源時,先判斷此請求是否經過登陸驗證,若是還沒有登陸則返回一個錯誤提示信息。插件
三、使用圖形驗證碼日誌
使用這個方法能夠保證每次下載都是「人」在你的網站上下載,而不是下載工具。由於網上不少介紹使用圖形驗證碼的方法,因此這裏就再也不重複了。這個方法的缺點是比較容易讓正常的用戶感到麻煩。