关于AJAX恶意用户的多次提交!
寒飞a 2012-05-11 02:33:38 例如:页面有个增加操作,往数据库写数据,是用AJAX提交的。
对于正常用户,可能会出现卡的情况,多点2次。我们可以简单的进行在页面上禁用按钮,遮罩层的方式防止用户多次点击。
但是对于非正常用户,随便一个调试工具。如IE调试工具,firebug等。一个断点,可以串改任何JS代码、不管你是做的全局变量的什么判断,统统可以给你改成合法的,再写一个循环N次,数据也是合法的话,那服务器是不是要增加N条数据了。
找了很多关于这方面的,还是没能解我心中疑惑。其中前台处理的统统略过,因为断点调试可以改掉你前台的所有东西。
有个作者将到关于后台的,可以记住用户上一次执行AJAX的时间,然后进行缓存。比如小于3秒,就不让其执行。
但是问题依旧存在,如果我在循环里延时4秒执行,依然还会有大量的数据写入数据库。这同样不是我们所希望看到的结果。
貌似用submit页面回发的方式提交就不会给用户有可调试的机会。
这是第4次发这个问题,希望看者都回一下,顶起来,解小弟心中的疑惑。