好吧,讓我們假設我們有一個允許用戶發表評論的表單。如您所知,「壞人」可以輕鬆地在PHP Curl的幫助下發送垃圾郵件。我如何保護我的網站免受包含captcha的情況?謝謝。保護網站免受PHP Curl post方法?
回答
最簡單的方法是使用某種形式的驗證碼保護(reCaptcha),或讓用戶登錄後才能發表評論(這實際上並不能防止垃圾郵件,但可以更輕鬆地對付通過阻止他們的帳戶發送垃圾郵件)
除此之外,你還可以採取一些簡單的預防措施,即。限制他們在特定時間範圍內可以執行的評論數量 - 也許只有在超過此限制時纔會顯示驗證碼,以確定它們是否爲人類(如此處所述)。
如果您的意思是「如何保護我的網站不被瀏覽器以外的程序訪問」,則答案几乎是「您不能」。瀏覽器只是一個發送HTTP請求的程序。你可以玩嘗試拒絕看起來不像瀏覽器的HTTP請求的遊戲,但對於一個任意程序(使用curl或者Perl/Python/Ruby庫)來模仿頭文件是非常簡單的「真實」的瀏覽器發送。
通常的作用是生成一個隨機值並將其存儲在用戶的會話中。 當我輸出表單時,我將這個值作爲一個隱藏的輸入。
當表單發佈時,比較發佈的值與會話中的值。每個值只能使用一次(因此在輸出表單之前更改它)。
那些垃圾郵件通常不會存儲cookie,這意味着當郵件被執行時,您沒有當前會話 - >沒有可比較的值,所以您知道發生了某些事情。如果他們確實發生了存儲cookie的情況,他們會針對每個帖子的形式發生衝突,只有第一次提交纔會成功。如果他們每次再次加載頁面並解析表單,則此方法不起作用。但我認爲沒有辦法來防止這種情況發生。
當然,這意味着您需要爲您網站上的每位訪問者分配會話,這也意味着存儲Cookie。無論是那個還是一個驗證碼,我都不知道其他方法。
會話支持和表單檢查很容易集成。當然,由於他們不會那麼努力地嘗試(有更低的懸掛水果),所以你會得到主要的垃圾郵件,但它不會成爲真正的障礙。 – Wrikken 2010-08-04 10:02:12
+1滾球的一個很好的解決方案。 – 2010-08-04 10:03:07
@Wrikken如果有人想要模擬一個完整的瀏覽器,那麼現實是不現實的 - 我猜這只是提高目標帖子。 – 2010-08-04 10:04:13
好吧,你可以嘗試一下沿着包含有效sessionid的表單上的隱藏控件的行。此sessionid將在POST上進行驗證,並且只有在它成功後,該帖子纔有效。
這可以使用/不使用JavaScript。 jim
- 1. 如何保護網站免受攻擊
- 2. 如何保護網站免受xss(跨網站腳本)
- 3. 網站登錄會保護網站免受SQL注入嗎?
- 4. 如何保護asp.net mvc 3網站免受url查詢?
- 5. 如何保護網站免受DoS攻擊
- 6. 針對cURL的保護網站?
- 7. 如何保護java.lang.Object的受保護方法免受子類攻擊?
- 8. 如何保護我的網站免受注射(Cookie編輯)
- 9. 如何保護網站免受惡意腳本侵害?
- 10. 保護PHP免受MySQL注入
- 11. 如何保護網站免受黑客侵害?
- 12. 未受SSL保護的網站
- 13. 如何保護PHP免受揹負?
- 14. 如何保護我的網站免受瘙癢?
- 15. 如何保護我的網站免受會話固定?
- 16. AWS是否保護我的網站免受DDoS攻擊?
- 17. 如何保護我的網站免受SQL注入?
- 18. 從受保護的Wordpress網站中排除受htpasswd保護的單個目錄
- 19. 受登錄保護的網站部分
- 20. Google網站搜索受保護頁面
- 21. php密碼保護網站
- 22. 保護網站免遭盜版
- 23. Junit受保護的方法
- 24. 受保護的方法
- 25. 網站上受保護的CSS?
- 26. 保護window.opener免受更改
- 27. PHP - 使用cURL訪問HTTPS(SSL)保護的網站
- 28. 保護所有方面的php網站(和一般網站)
- 29. R - RCurl從受密碼保護的網站抓取數據
- 30. 保護網站
即使capcha不是100%安全的,請參閱http://ejohn.org/blog/ocr-and-neural-nets-in-javascript/ – Sarfraz 2010-08-04 12:06:34
我知道,但[reCaptcha](http://www.recaptcha。 com)對於OCR攻擊是非常安全的,甚至可以讓盲人用戶訪問:p。 – wimvds 2010-08-04 12:24:25