而不是像免費空間的Banner、Popup廣告視窗 (甚至還有我敢發誓、我是紹偉的某玩意XD)
---
看上廣告機器人是自動化的,自然跟實際操作電腦的人有些許不同,而擋廣告就是要強制分別出這兩種。
如果你是人類,則繼續處理要求;如果你是機器人,就仆街去吧。
目前常見的擋廣告方法:
- 採會員認證方式
不是每個地方都適用,試想一個訪客留言版還要註冊你還想留下足跡嗎? - CAPTCHA 認證碼方式 (語音或圖像)
看上人腦能夠處理看或聽的訊息而機器人不會(事實上程式寫的好也有可能會, ex: PWNtcha),
不過這樣對於視障或聽障人士似乎是有點不公平啦。 - 詢問簡單題目
記得某些留言版或是Wiki有這樣的設計,問你11-3是多少一類的。 - 利用geek JavaScript
用一些難以讓機器人判讀,但瀏覽器顯示卻正常的東西來擋,基本上是取巧型。 - DNSBL即時黑名單功能
先查詢發文IP,如果曾經發過Spam就擋下來。此招沒啥用,像全鎖廣告IP一樣沒啥用。
專門發Spam的機器很聰明的,IP雖然不是偽造但也沒參考價值,因為常常變換。 - 樣本分析過濾法
說起來這招算是頗有成效的其中一招,大家一眼就看出是Spam的文章必定有其特徵,
將大量樣本利用數學方式計算後得出資料庫。缺點是要經過訓練。 - Field Trap 欄位陷阱
設計幾個讓機器人去填,但一般人不可能填的到的欄位,如果有值表示是機器人。
網路上有很多高手致力於防治Spam的工作,方法也很多樣 (上面就列了七個,應該有更多)
其中最普遍的應該是CAPTCHA了吧,但嚴格說起來它有其缺陷 (剝奪某些人的人權XD)
如果能找到幾個對人類使用者影響不大、又能有效對付Spam機器人的方法那該有多好。
所謂的有效不一定要100%,但也要有90%的能力才好。
其中我自己有個Spam試驗漁場,本來是舊網站留言版實驗區,
後來廢了之後沒去動它,幾年之後才發現已經變成漁場了(驚)
聽說Spam會針對常見的留言版程式 (像這個實驗區的YYBBS) 搜尋並轟炸。
而我就改造留言版程式來收集一些資料,分析習性。
結論:
- 鎖IP的方法是治標不治本。收集到的樣本IP幾乎都不同,但有些是同Class。
- CAPTCHA很有用。不過這樣人類使用者也會懶的發文。
- Field Trap 欄位陷阱也很有用。
根據我的觀察,Spam Bot會對CGI程式傳送常見的幾個欄位值,
例如name, url, sub, comment, home, email等等。你看看大多數的表單是不是這樣?
所以我們將這些欄位全部作成陷阱,利用CSS使其隱藏,如此沒有JavaScript的問題。
然後另外造出正常的欄位,注意到的是這些欄位的名稱也算geek,例如SnYhkiuYV。
絕一點可以利用動態生成,檢查(阻擋)完成後,後端再對應到正確的變數值。
也許這時候CAPTCHA或是簡單題目正發揮了阻擋的功效吧XD
由於樣本數不夠的關係,我也不能說哪個方法是最有用的,不過一般而言CAPTCHA是比較有用的。
當然,一些比較取巧的方法也可以用看看。如果可以,我覺得欄位陷阱還不錯?
當然交互搭配是更棒的了。
>利用geek JavaScript
回覆刪除把form tag用Javascript印出來這招就能擋掉不少不是用瀏覽器「犯案」的bot了 XD
這樣吧,不如來多層陷阱?
回覆刪除就像公司一樣,除了有保全人員,還有監視器、刷卡辨識等重重措施防護。
我預定在PMC加入Field Trap,內建的。
雖然我沒有一個PMC的Spam Lab,不過看Maid版被轟炸的程度我就知道這不能等閒視之。
以YYBBS來說,目前的5.8版已內建CAPTCHA,起碼有基本防護。
對一般沒有修改應對能力的使用者也可以安心使用。
雖然一個貼圖版加這些東西似乎多此一舉 (回到從前H神對我說的)
不過顧慮到基本層面防護,不得不加。
---
至於Spam類型有很多。撇去人工不談,機器的應該也有利用瀏覽器和不用兩種吧?
後者對Cookie、Session或是JavaScript應該都很弱。
前者還是有弱點,Field Trap就是針對他們的弱點的設計。
我換網址了= = 只是你當初的拍手有問題 害得我一直沒辦法跟你講
回覆刪除我也是採用Javascript印出form tag的方式
另外預計加入認證碼加入欄位陷阱的方法
http://sdcgf.org/css.htm
這邊的是試作型 想到再加入
>>浅羽 季紅
回覆刪除我以為老兄當兵去了就沒回應了咧XD
記得什麼itaiwan的後來就進不去了。
拍手有問題的時期應該是暑假轉移主機的時候吧,CGI權限一直搞不定乾脆就拆了XD
看到淺羽兄的做法又讓我想到更多可能性,感謝啟發啊。
不過我覺得NoScript的盛行,其實用JavaScript來阻擋不是非常好的做法。
假如網站使用AJAX而不得不使用,那就放心用吧。
如果不是,網站管理者應當沒理由要求使用者開啟Script支援。
不過CSS倒是一個好辦法,我所說的欄位陷阱就使用了CSS隱藏陷阱欄位。
另外看到background-image的做法,真是拍案叫絕。
基本上欄位陷阱 + CAPTCHA驗證碼 + 樣本分析大概可以除去99% Spam吧。
最後一項太難做了,只能用黑名單字串來頂替一下。
就如你所說 現在已經是AJAX年代了
回覆刪除會不開啟JavaScript支援的 我分為兩種人
1. 排除一些JavaScript花招的人
2. 跳過JavaScript檢驗的人
所以當初是因為想過濾掉2類型的人
才改用用JavaScript列印出form tag
而且現在的表單 大多融合了JavaScript驗證的功能
(如PHPBB的表單)
如果沒開啟JavaScript 表單反倒是變的很奇怪
而使用background-image的做法 純粹是為了排版方便(爆)
兩大瀏覽器都喜歡讓圖片排版會比文字排版往上一點點
所以我想這個方法應該是最簡便的寫法= =
不過我覺得最好的方法可能是 自己寫一個留言版= =
如你所說
機器人大多是攻擊一些知名的留言版
那麼 自己寫一個不常見的留言版的話 被攻擊的機率應該會下降很多
朋友的留言版
http://kais0089.netfirms.com/cgi-bin/mkakikomitai.cgi
我的留言版
http://sdcgf.org/9/
幸運的是 開版超過半年有餘 沒被攻擊過= =
選擇關閉Script的人可能擔心安全性的疑慮,例如XSS或是惡意程式碼。
回覆刪除大部分的人我想應不會隨意關閉 (IE要關還要調安全性設定)
不過不贊成強迫使用,除非是非用不可。
>>不過我覺得最好的方法可能是 自己寫一個留言版
留言版運作原理都一個樣,
不如把欄位名稱改一改,CGI檔名改一改就好?
mkakikomitai.cgi 常常被攻擊啊,
常見的留言版通常沒什麼防護而且架設者也沒能力應對修改,
因此得靠設計者自行加入(如YY-BOARD)或者其他非官方修改版。