2011-03-04 72 views
3

我們的Rails應用程序允許未登錄的用戶創建消息對象並將其存儲在我們的數據庫中,然後通過電子郵件將內容發送給註冊用戶。在我們的登臺應用程序中,我們已經開始收到很多來自爬行我們網站的漫遊器的垃圾郵件。我們擔心兩兩件事:防止通過窗體上的鏈接發送垃圾郵件

  1. 的不便我們的用戶
  2. SQL注入,或者我們沒有考慮任何其他安全漏洞可能發生在這種情況下

有什麼好的如何解決這個問題?我明白我們可以實現一個驗證碼系統,但從用戶體驗的角度來看這並不理想。我們也可以阻止像中國這樣的地方(或者攻擊源自哪裏)的IP,但我們也可能想爲中國的用戶提供服務。

另外,我相信rails具有內置的功能來清理查詢字符串並防止SQL注入,但默認情況下是這樣嗎?在這種情況下,我們應該關注的其他事情是否應該防止rails在默認情況下處理?

有什麼建議嗎?

回答

6

您可能希望在您的表單中實施honeypot。它基本上是一個空白的隱藏字段,用戶不會填寫任何內容(因爲它是隱藏的),但是垃圾郵件機器人可能會填寫。請確保爲可訪問性標記字段。

在大多數情況下,Rails能夠防止SQL注入,您可以在Rails guide on security中閱讀更多關於它的信息。整個指南頁是一個很好的閱讀。

2

嘗試'honeypot-captcha'gem - 將最簡單的方法添加到導軌形式的驗證碼驗證碼。工作得很好。

相關問題