[问题] 如何防止使用者大量点击造成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