Aapache上設定”禁止盜連”
其實這故事己經發生半年多了,只是一直到現在還有殘留效應。話說豆子管理的Server群中,其中有一台主機是提供給學生存放網頁用的。但是呢,偏偏裡面就是有學生特別喜歡搞怪,故事是這樣子發生的,無名小站有提供使用者使用javascript語法的,而有位學生在主機上存放了一些滑鼠游標檔(*.ani *.ico),然後還到無名的blog寫了一篇文章告訴全世界說我這裡有滑鼠游標檔,歡迎大家在無名的blog直接加上我的javascript語法(約莫提供了20幾組絕對連結),這樣一來只要任何一位訪客進到該blog滑鼠的游標就會變成可愛的icon。
這樣的做法的確是讓一些bloger愛死了,口耳相傳之下也吸引了一堆人套用,但是呢??!!這死小孩只以為自己很厲害,提供了好用的語法給其它的網友,自己blog的人氣指數也直線上升,但是豆子對於這種不負責任的行為可是恨透了,因為這種行為模式對豆子的主機簡直就是一種瘋狂的連線攻擊,怎麼說呢??豆子簡略的畫了一個圖說明:
以上圖為例,使用者只要對某一個套用該語法的網站進行一次連線,無名小站就會對豆子的主機要一次該滑鼠游標檔。若我們不以連線數來算,以最保險的上站人數來看;假使像彎彎的網站也使用了該語法,一天有五萬人的上站人數,那麼豆子的主機就要接受無名小站五萬次的連線,若有20個網站使用,則連線數可能高達100萬筆,這些還不包括使用者上站後閱讀裡面的文章或是重新整理網頁所造成的連線數了。根據豆子觀察主機log的結果,無名相簿的連結為大宗,因為使用者只要上無名相簿每看一張照片就會對豆子的主機連線一次,變相來說豆子的主機衍然己經成為無名小站游標連線的主機了!!而豆子的這台小小主機那有能力獨撐這樣的流量呢,這簡直就是一種攻擊,更何況豆子的這台主機還得提供其它二萬多個使用者所使用。所以豆子對這位學生的行為,簡直是恨透了。
或許,這位學生一開始可能沒有想那麼多,沒有想到會造成這樣的連鎖效應,所以豆子就打了通電話告敨該位學生該行為所造成的影響,並請他將儘速將教學文章拿掉,沒想到這學生居然和我說他很忙過幾天再做,哇哩咧!#$#%@$%~!...........這是什麼態度丫!!造成別人的影響居然還這麼不在乎,沒想到幾天後居然還在無名小站的blog上大談我們多麼小氣,提供個網頁空間還這麼小氣芭啦,還說什麼為什麼大人都把他們當小孩子看.........等,這簡直是讓豆子火大死了,做錯事還這麼理直氣壯~~
其實這事件己經過很久了,只是最近豆子看到在如何在Aapache上設定"禁止盜連"的語法,才將故事寫出來~~
語法是這樣的(httpd.conf):
#以下是允許連結的網站
SetEnvIf Referer "^http://192.168.50.160/wordpress/" local_ref
SetEnvIf Referer "^$" local_ref
#禁止使用者使用wget
SetEnvIfNoCase User-Agent "^Wget" banned_useragent
#禁止以下的網站以外部連結的方式盜連(將無名擋掉)
SetEnvIf Referer "^http://www.wretch.cc/" banned_useragent
< Directory /www>
Order Deny,Allow
Deny from all
Allow from env=local_ref
Deny from env=banned_useragent
< /Directory>
改完之後 reload httpd 即可
這書種設定方法是全都檔
還有其它二種類似的設法:SetEnvIfNoCase 、 FileMatch
FileMatch 的方法可以設定禁止連結的檔案類別
呀!現在狀況如何,有檔掉無名的連線嗎?主機可以休息了嗎?看他那一系的啦,最好是藍主任他們系上的,直接當掉,看!