我有一個ajax-> PHP簡單的聊天,我想阻止用戶發送太多的聊天請求,或消息太快。限制任何用戶可以發送的消息量以避免垃圾郵件是一種好方法。我已經完成了對空值和空白消息的正常檢查。我正在尋找一種方法來防止用戶反覆發送多個消息,例如不斷按下發送按鈕或按下回車鍵。我想限制此操作每5秒1條消息,或者如果用戶在5秒鐘內發送太多問題以強制等待一段時間才能發送另一條消息。jQuery聊天應用程序垃圾郵件
回答
執行時間延遲:用戶無法在一分鐘內發帖超過15次。
處理此問題的一種簡單方法是在發送新的聊天消息後啓動計時器,然後禁用聊天消息提交直到該計時器達到特定數目(例如5秒,15秒,30秒)。您可以通過禁用和灰色顯示「發送」按鈕,直觀地向用戶指明此情況。
我覺得每分鐘定位的方法會比爲每條消息設置一個恆定的時間延遲要好。這會感覺更自然。
如果在客戶端使用JS實現,那麼在服務器端也檢查速率並且在超出速率的情況下返回錯誤代碼會很明智。如果有人試圖通過淹沒請求來利用AJAX端點,但是您也可以實施某種CSRF策略來避免該利用情形。
我更喜歡這樣的方法,但我如何保持這個門檻每分鐘與JS? – kabuto178 2013-03-16 00:00:34
使用'window.setInterval'並且每次AJAX請求時,在全局變量中保持一個運行的計數。您可以使用間隔每分鐘將這些記錄重新打回0。如果您有多個聊天窗口,則可以爲每個活動的聊天窗口保留一個數組。 – gmartellino 2013-03-16 00:06:08
- 1. C#聊天客戶端聊天垃圾郵件自動攔截
- 2. 垃圾郵件與垃圾郵件
- 3. 垃圾郵件
- 4. 防止垃圾郵件機器人撞到Rails應用程序
- 5. Facebook應用程序垃圾郵件閾值
- 6. 垃圾郵件保護在web應用程序
- 7. Django應用程序垃圾郵件阻止
- 8. 防垃圾郵件
- 9. 防止使用php郵件功能將垃圾郵件視爲垃圾郵件
- 10. 垃圾郵件檢查,垃圾郵件得分如何?
- 11. ASP.NET聊天應用程序
- 12. jQuery停止點擊垃圾郵件
- 13. PHP編程垃圾郵件防護
- 14. Unity Debug.Log()垃圾郵件
- 15. 網站被垃圾郵件
- 16. Django評論垃圾郵件
- 17. JS垃圾郵件防護
- 18. PageRank和垃圾郵件
- 19. Swiftmailer垃圾郵件測試
- 20. 跨站點垃圾郵件
- 21. (WinSocket)垃圾郵件斷開
- 22. Api限制/垃圾郵件
- 23. jQuery的 - 如何阻止垃圾郵件的用戶事件處理程序
- 24. 防止電子郵件垃圾郵件?
- 25. 郵件到達垃圾郵件
- 26. sendmail郵件標記爲垃圾郵件
- 27. PHP電子郵件垃圾郵件
- 28. ASPX發送郵件爲垃圾郵件
- 29. Cakephp電子郵件去垃圾郵件
- 30. Zimbra郵件轉到垃圾郵件
您可能需要將聊天請求存儲在數據庫或會話的某處。 – 2013-03-15 22:30:29