技术开发 频道

防止恶意刷新页面的Java实现


    【IT168 专稿】在很多对安全性要求较高的项目中,需要提供至少一种对整个项目的安全控制方案,常用的比如身份认证、访问控制、安全审计等等。由于设计不合理而导致的安全问题可能会给项目带来非常大的隐患,正是因为如此,安全问题也得到了广大web项目开发者的重视,尤其是在电子政务和电子商务的开发中,更是需要提供一定层次上的安全性要求。
本文的重点在于实现一种防止恶意刷新页面的方法,笔者在实现该功能时,查找了很多资料并且进行了多次讨论协商,提出了这种针对特定需求的,独立性较高的方案。

    下面,我们来具体说一下客户的需求。
     该功能是在某电子政务的安全审计子系统中要求实现的一个功能,因为安全审计子系统涉及多方面的内容,包括外网访问日志,专网和内网办公日志,数据库操作日志等等的控制和查询等等,通过这些功能,可以提供给管理员各种接口,从而可以查看系统的使用状况,并对误操作或者恶意操作进行有效追踪和审计。而外网作为电子政务的门户,是为广大公众提供访问的接口,那么保证其正常浏览是作为电子政务系统中不可或缺的功能需求,因此,实现防止恶意刷新的功能便是提供良好功能保障的众多手段中的一种。

    这里所说的恶意刷新并不是指网络上通常所指的如何通过javascript脚本来屏蔽F5键等方案,而是通过过滤机制,由程序实现的一种对某次会话中的恶意访问的控制,该方案中制定的规则是:来自某一客户的访问如果在10秒中内超过10次则被假设为恶意访问。这样的方案也是比较合理的,既避免了恶意用户使用F5键来频繁刷新某一固定页面,也防止了用户漫无目的地乱点页面。同时,该方案还提供了辅助功能,在规则设定方面比较灵活,默认为10次/10秒,这两个参数是可以通过程序来设置的;在恶意控制方面,如果用户的访问违反了该规则,则通过过滤器机制提取该用户的IP地址,将其置为拒绝提供服务的IP列表中,将拒绝再次为来自该IP的请求提供服务。
    下面,我们来具体说明一下该方案的实现方法。
    首先,从整个方案的实施体系来讲,我们提取出如下的控制流程。


0
相关文章