[問題] 如何防止使用者大量點擊造成DB存取

作者: walelile (wakaka)   2014-12-02 23:17:12
我在做發送認証信功能時候想到,
目前實作的狀況,使用者只需要填好email按送出,就需要存取DB及google smtp server。
存取DB是用來確定以下幾點
1. 該email有對應的使用者存在
2. 使用者尚未認証完畢
如果以上兩點皆滿足,就得要再多一個送mail的步驟。
我應該如何防止有人一直用確實需要認証的email重複填寫表格並發送。
如果是透過瀏覽器,我想應該可以把一些(如驗證次數)訊息寫到cookie上來防止(?)
但是如果是直接用其他程式發送POST,這辦法就無效。
要防止這種行為,是要靠填寫驗證碼嗎?還有沒有其他的方法呢?
謝謝指教
作者: alog (A肉哥)   2014-12-02 23:29:00
認ip就夠了不會有來自特定來源的ip一直持續要求email認證驗證碼產生機制本身也要做request控管,免得有人刻意消耗server資源怎麼做?就是你開一張memory engine的table把嘗試做某些事情的ip做個統計, 到達一個上限就reject然後定時去清掉這張表
作者: oToToT (屁孩)   2014-12-02 23:51:00
這種防破壞盡量別寫在前端,很容易被修改
作者: walelile (wakaka)   2014-12-03 06:58:00
了解,謝謝兩位大大的解答

Links booklink

Contact Us: admin [ a t ] ucptt.com