请教:怎样防止JSP页面的恶意刷新?(50分)

  • 主题发起人 主题发起人 黑衣人
  • 开始时间 开始时间

黑衣人

Unregistered / Unconfirmed
GUEST, unregistred user!
一般情况下都是使用下面的方式
ThePage.jsp?BoardID=1&TopicID=123
来引导页面,但是转到指定页面后,IE地址栏的地址也变为上面的内容,那么会有人在该页
面中F5狂刷新,引起服务器端不停的操作数据库,要怎样做才能防止恶意刷新呢?
 
1.在数据库中加约束
2.逻辑上记录当前用户的操作时间,当两个操作时间差小于某个值的时候不允许用户提交.
 
加约束不怎么好加;
加时间纪录也很麻烦,而且如果用户就是快人一步,岂不是很尴尬?
最好的办法就是使用缓存。把你的最常用的Board和topic对象都放在对象池里面,这样他狂刷,只会引起内存操作。其实这个时候,http server本身以及httpserver与app server之间的管道受到的压力会更大。在阶段情况下一样会导致系统崩溃或者拒绝服务。
 
惊动了两位大虾呀,呵呵,不过还是没懂,能不能提供一些实现上的东西,如代码呀什么的?
谢谢先了!
 
>>逻辑上记录当前用户的操作时间,当两个操作时间差小于某个值的时候不允许用户提交.
这种方法是在客户端实现吗?
 
如果是jsp- > db,那么只能做数据库加锁,如果是jsp-> ejb -> db,那么简单的在ejb中设置一个令牌功能就可以防止恶意刷新(也就是重复提交)
当然,针对前面这种,你把jsp -> servlet,然后在servlet做处理再提交也一样可以实现,至于使用时间周期控制或者提交令牌控制都是可以的
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部