如我們所知,Reddit允許每個鏈接每個IP地址大約1票,以避免垃圾郵件發送者的問題。我正在開發一個Slim應用程序,該應用程序將具有投票功能,坦率地說,我不知道如何實現這樣的系統,因爲我沒有使用Cookie和本地會話的經驗。另外我的大部分函數都有像(example)localhost:8888/myapp/voteup/item-to-vote這樣的路徑。防止投票垃圾郵件的最佳方法是什麼?即reddit如何做到這一點
回答
在我的網站上,我允許成員每24小時對1到5之間的代碼進行一次評分。我通過添加哈希碼並使用ajax提交投票來阻止垃圾郵件。自2012年6月我添加它以來,我還沒有收到任何垃圾郵件投票。我以前每天從殭屍工具中獲得約40張選票,但現在已經被淘汰。
例如,這是我的鏈接是什麼樣子:
http://phpsnips.com/process/vote.php?id=43&vote=3&enc=a560e4320af4e13e4170947cd42de18b
就這樣,ENC是不同的每次頁面加載,一旦投票提交它再次改變。
我的步驟
- 使用會話鏈接創建一個MD5哈希
- 地方散或形成隱藏字段
- 在提交頁面測試,以確保會議符合鏈接/字段
- 重置散列
- 重定向回原始頁面(如果不使用ajax)
你可以提供一些代碼,顯示我可以自己做這個嗎?......我很困惑。 – user1923948
這是一個類似的答案,我提供它基本上是相同的東西:http://stackoverflow.com/questions/14059199/check-if-form-is-called-from-correct-page/14059309#14059309 –
對抗自動機器人的最好方法是混淆它們。隱藏一些文本輸入字段,將它們命名爲其他名稱(名稱字段,將它們命名爲電子郵件以及網站,命名它們的名稱等)
更喜歡使用Javascript提交,所以它可以幫助緩解表單提交。 CSRF的使用也可以提供幫助。強制使用cookie,HTTP自定義標題,以確保只有瀏覽器和自動方式才能重現。
邏輯問題也可以提供幫助,比如「多少是1 + 1,寫下來」(答案必須是兩個,並且是隨機的)或「以W開頭的一週中的哪一天」。
以及我說我的應用程序是API驅動(和API將公開)所以我需要一個傻瓜安全的方法 – user1923948
好吧,API是公衆你需要問一個訪問密鑰,然後是一個API祕密,所以它是公開的,但沒有那麼多。 – pocesar
公共API可以在不需要密鑰的情況下訪問GET調用,但只有POST/PUT需要API密鑰,否則您將有一種適度的方式,這遠比避免第一個問題 – pocesar
- 1. 用JavaScript過濾垃圾郵件的最佳方法是什麼?
- 2. 防止郵件進入垃圾郵件的最佳SMTP配置
- 3. PHP投票系統,如何阻止垃圾郵件?
- 4. 你做什麼來防止垃圾郵件?
- 5. 「投票」的最佳方式是什麼?
- 6. 如何防止垃圾郵件搜索
- 7. 如何防止捲髮垃圾郵件
- 8. 如何防止垃圾郵件?
- 9. 什麼是垃圾郵件:撰寫垃圾郵件過濾器的一點
- 10. 防止電子郵件垃圾郵件?
- 11. 垃圾垃圾郵件 - 這是什麼意思?
- 12. 什麼是在JavaScript中做到這一點的最佳方式?
- 13. 防垃圾郵件
- 14. 清除垃圾收集BST的最佳方法是什麼?
- 15. 防止Websocket垃圾郵件我的console.log
- 16. 使用電話號碼防止垃圾郵件:如何防止移動應用上的垃圾郵件?
- 17. 防止垃圾郵件異步呼叫的好方法
- 18. 防止使用php郵件功能將垃圾郵件視爲垃圾郵件
- 19. 防止垃圾郵件呼叫webservice
- 20. 防止垃圾郵件(限速)
- 21. 防止MediaWiki被垃圾郵件
- 22. 郵件發送時如何防止垃圾郵件
- 23. 如何防止郵件進入垃圾郵件?
- 24. 如何防止郵件發送垃圾郵件?下面
- 25. 如何防止表單提交/郵件垃圾郵件?
- 26. 這封電子郵件是什麼垃圾郵件?
- 27. 你是人類嗎? (或如何防止垃圾郵件)
- 28. 讓SAS做到這一點最簡單的方法是什麼?
- 29. 水晶報告中做到這一點的最佳方法是什麼?
- 30. 防止PHP郵件發送到垃圾郵件gmail
這是一個「匿名網站」嗎?這意味着你需要在投票前先註冊用戶,否則任何發現該網站的人都可以投票。 (差異的投票行爲與知識產權或會員資料耦合) –
任何人都可以投票 – user1923948