作者 主題: outlook  (閱讀 7214 次)

0 會員 與 1 訪客 正在閱讀本文。

abc

  • 可愛的小學生
  • *
  • 文章數: 10
    • 檢視個人資料
outlook
« 於: 2005-05-13 09:54 »
outlook
« 上次編輯: 2008-12-14 00:05 由 abc »

thucop

  • 憂鬱的高中生
  • ***
  • 文章數: 148
    • 檢視個人資料
你要擋什麼很重要,
今天 UserAgent 是可以自己亂寫的,
如果有人真的要來鬧,他每一次存取都丟亂碼的 UserAgent,
你要擋到什麼時候。

如果是不希望外面的搜索引擎來抓,
只要在該網頁目錄下加一個檔案就可以了,
不用這麼大費週章,
不過這是對正當的搜索引擎而言啦!
~ 學無止境 ~~

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
引述: "xware"
我設定過 : SetEnvIfNoCase User-Agent "-" deny
結果只要 user agent 內含 - 都會被 403 deny 掉 (擋了一卡車 :( )

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


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

==
I am kenduest - 小州

my website: http://kenduest.sayya.org/

thucop

  • 憂鬱的高中生
  • ***
  • 文章數: 148
    • 檢視個人資料
引述: "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

試試如何?
~ 學無止境 ~~

thucop

  • 憂鬱的高中生
  • ***
  • 文章數: 148
    • 檢視個人資料
引述: "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 嗎?
~ 學無止境 ~~