2012-08-06 125 views
5

我在評論表單中添加了驗證碼及其工作,但我仍然不斷收到垃圾郵件。有沒有其他方法可以使用?感謝您的幫助驗證碼未能阻止垃圾郵件提交

+0

這可能是一個網站設計問題,而不是一個編碼問題,所以有些人可能會失望。 – rsegal 2012-08-06 21:21:08

回答

3

驗證碼已broken for some time

沒有完美的解決方案來防止垃圾評論。

您可以在發表評論前先要求用戶註冊。雖然垃圾郵件還可以打破這種情況,但解決這個問題是一個難題。這種解決方案也不鼓勵真人蔘與。

您可以從非註冊用戶的要求審覈前就貼出自動標記註釋,用戶可以自己查看它們或通過社區(就像堆棧溢出做某些內容,如修改)。您可能還想標記尚未建立可信度的「新」用戶的評論。

你應該創建一個IP地址列表。大多數垃圾郵件將來自合法人員使用的受感染的計算機。如果你阻止一個IP,另一個殭屍電腦很可能會嘗試連接恢復工作。另一方面,你可能會阻止殭屍電腦的用戶使用你的網站。

2

On(其中一個原因)爲什麼您的Captcha可能無法工作:一種技術被指出是黑客會讓他們的機器人將Captcha的屏幕截圖發送回基地,並且一個最低工資的人將填充出來。 (埃裏克·J的鏈接詳細講述。)

更好的解決方案似乎是圍繞着網站不是實施結構。

你可以環顧這個網站特別 - 技術,如限制特權,直到用戶表示自己是你的小社會的功能部分。本質上來說,將責任放在特權之前。

XKCD, of course, says it well

1

不幸的是,CAPTCHA有它的挑戰。去年的一項研究發現,CAPTCHA可能不像以前那樣可靠地防止計算機識別。這項研究可在http://homepages.cs.ncl.ac.uk/jeff.yan/google.pdf

我的公司與客戶合作來阻止社交垃圾郵件。查看我們的博客文章,瞭解開發人員如何應對社交垃圾郵件的問題。在我們的文章中,我們強調您可以構建的策略(並且我們也提供)來增強您的站點防範垃圾郵件的能力。 http://www.impermium.com/blog/2012/02/03/answers-to-developer-questions-on-fighting-social-spam/

3

聲明:我自己SpamCaptcher但仍會盡力做到公正這裏

的結果,你將與你的CAPTCHA看到在很大程度上取決於3個主要因素:

  1. 你怎麼實現的CAPTCHA
  2. 您使用的驗證碼類型
  3. 垃圾郵件發送者的垃圾郵件投資回報

CAPTCHA實施

在我們討論您所使用的CAPTCHA的類型是否是適合您的需要(或者你是否應該使用一個在所有),首先檢查,看它是否實現正確。如果它不在服務器端驗證,可以通過關閉JavaScript或禁用Flash(或更改任何其他客戶端配置)來繞過,或者答案存儲在客戶端,則需要修復實現。當然,誰使你使用CAPTCHA應該做到這一點,所以你不必擔心這一點。注意:我強烈建議您不要推出自己的CAPTCHA解決方案。

CAPTCHA類型

大多數人認爲的驗證碼爲他們破譯扭曲文字的圖片。雖然這當然是CAPTCHA的一個實現(目前是最受歡迎的),但並不是唯一的一個。雖然這個基於扭曲的基於CAPTCHA的文本在一段時間內取得了成功,但OCR的改進使得垃圾郵件發送者可以使用自動化工具解決這些問題。爲了解決這個問題,製作CAPTCHA的人讓他們更難閱讀,現在我們陷入了一種情況,即在人類越來越多的鬥爭中,計算機一直在更好地解決問題。最近,一直在CAPTCHA供應商提供一系列不同類型的驗證碼的熱潮:

  • 圖像識別
  • 圖像方向(我個人最喜歡的)
  • 遊戲
  • 視頻理解
  • 音頻理解

此外,p人們已經擺脫了對CAPTCHA的嚴格定義,並提出了一些可能適用於您的解決方案,這取決於您的網站(下一節將詳細介紹這一點)。

有些事情要記住,當你選擇一個CAPTCHA類型是某些人可能與某些類型的鬥爭。確保視力障礙人士和聽力障礙人士仍然可以解答CAPTCHA是一個很好的做法。同樣重要的是要注意,CAPTCHA只是其最薄弱的一點。因此,例如,如果驗證碼的視覺部分堅如磐石,但音頻部分很弱,那麼安全性就會很弱。事實上,在這種情況下,您只會使用CAPTCHA困擾大多數合法用戶,同時爲垃圾郵件發送者提供了一種簡單的方法來解決它。

垃圾郵件ROI

根據您的網站的性質,垃圾郵件發送者可以有一個或大或小的獎勵垃圾郵件。如果激勵很小,那麼很可能他們不會爲垃圾郵件編寫定製解決方案。但是,如果激勵很大,那麼他們很有可能會爲您的網站編寫自定義解決方案。

讓我們從小的激勵案例開始。如果您屬於這一類別,那麼我建議您選擇尚未廣泛採用(但仍然安全)的CAPTCHA,並且對用戶來說非常簡單(如果不是透明的話)。蜜罐和Hashcash就是透明解決方案的例子。在SpamCaptcher中,我們提供了一個名爲Proof-of-Work的解決方案。

另一方面,如果您有一個垃圾郵件發送者的投資回報率高的網站,那麼您將需要更多的安全性。在這種情況下,您顯然希望選擇一個具有強大安全性並仍提供良好用戶體驗的解決方案。但是,如果您的網站的投資回報率足夠高,那麼您可能會遇到人類CAPTCHA求解器。驗證碼本身並不能保護你。然而,(另一個無恥的插件),SpamCaptcher有它的TrustMe帳戶解決方案。

結論

你真的需要選擇CAPTCHA,是適合您的需求,這意味着你需要找到安全性和用戶友好性之間的最佳平衡。我明顯推薦SpamCaptcher,並認爲我們的Rotational Image CAPTCHA對你來說是一個很好的解決方案,但你顯然需要決定什麼是最適合你的網站。下面是你可能要考慮幾個CAPTCHA提供商:

  • SpamCaptcher
  • 自信技術
  • 驗證碼

希望幫助!

1

我建議在Captcha之外增加額外的措施。

在我的情況我experitmented與添加隱藏字段 - >

<form action="/submit.php" method="post"> 
    <p>Your name: <input type="text" name="name" /></p> 
    <p>Your email: <input type="text" name="email" /></p> 
    <p class="antispam">Leave this empty: <input type="text" name="url" /></p> 
    <p><textarea name="message"></textarea></p> 
    <p><input type="submit" value="Send" /></p> 
</form> 

.antispam { display:none;} 

,然後驗證它在服務器端 - >

<?php 
// if the url field is empty 
if(isset($_POST['url']) && $_POST['url'] == ''){ 
    // then send the form to your email 
} 
// otherwise, let the spammer think that they got their message through 
?> 

上面的代碼示例從該有用文章中提取: http://www.nfriedly.com/techblog/2009/11/how-to-build-a-spam-free-contact-forms-without-captchas/ 來自Nathan Friedly

在我的網站中,我實施了上述方法和Google的reCaptcha。

到目前爲止工作正常。

相關問題