酷!學園

技術討論區 => 系統安全討論版 => 主題作者是: abc 於 2005-05-13 09:54

主題: outlook
作者: abc2005-05-13 09:54
outlook
主題: Apache被猛攻,請教以SetEnvIfNoCase阻擋某特殊User-Agent的語法
作者: thucop2005-05-13 11:01
你要擋什麼很重要,
今天 UserAgent 是可以自己亂寫的,
如果有人真的要來鬧,他每一次存取都丟亂碼的 UserAgent,
你要擋到什麼時候。

如果是不希望外面的搜索引擎來抓,
只要在該網頁目錄下加一個檔案就可以了,
不用這麼大費週章,
不過這是對正當的搜索引擎而言啦!
主題: Re: Apache被猛攻,請教以SetEnvIfNoCase阻擋某特殊User-Agent的語法
作者: kenduest2005-05-13 13:56
引述: "xware"
我設定過 : SetEnvIfNoCase User-Agent "-" deny
結果只要 user agent 內含 - 都會被 403 deny 掉 (擋了一卡車 :( )

不知正確的只阻擋 user agent 為 - 者 , SetEnvIfNoCase 語法該如何設定 ??
感謝您的幫助!


- 表示對方沒送 agent header 資訊。

==
主題: Re: Apache被猛攻,請教以SetEnvIfNoCase阻擋某特殊User-Agent的語法
作者: thucop2005-05-13 14:33
引述: "xware"
Apache 可以設定 "user agent" 條件 , 封鎖某些國外 bot 程式來抓取資料 (該行為會浪費網站頻寬)

比如說我有一行規則如下 , 該規則可封鎖國外某個網站 robot 來抓資料
SetEnvIfNoCase User-Agent "BoardReader" deny

我的網站流量有時會突然衝高
觀看 log 後發現某個 ip 使用不知名程式刻意攻擊

一般瀏覽 log 紀錄 , 後面的記錄會留下 : Referer網址,user agent , 如:
引用

HTTP/1.1" 200 920 "http://www.xxx.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"" (-)


而該攻擊者的紀錄如下 , 後面的 Referer網址,user agent  都是空白的 :   -
引用
HTTP/1.1" 200 31486 "-" "-"" (-)


我想設定 apache 判斷只要 user agent 是 - , 則一律直接 403 deny 掉

我設定過 : SetEnvIfNoCase User-Agent "-" deny
結果只要 user agent 內含 - 都會被 403 deny 掉 (擋了一卡車 :( )

不知正確的只阻擋 user agent 為 - 者 , SetEnvIfNoCase 語法該如何設定 ??
感謝您的幫助!


SetEnvIfNoCase User-Agent "^-" deny

試試如何?
主題: Re: Apache被猛攻,請教以SetEnvIfNoCase阻擋某特殊User-Agent的語法
作者: thucop2005-05-13 16:43
引述: "xware"
引述: "thucop"
引述: "xware"
SetEnvIfNoCase User-Agent "^-" deny

試試如何?


剛測試 , 有人被誤擋
其 User-Agent  為 : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; iOpus-I-M; .NET CLR 1.1.4322)"
應是 iOpus-I-M , 內含 - 所導致.

^代表的意思是不是如下這樣 ??
SetEnvIf user-agent "^DISCo" deny
The ^ character means that the string should start with DISCo


對啊  ^ 是代表從第一個字元開始!
還會被誤檔就奇怪了!
你可以 po 一下那個檔的 log 嗎?