java教程:网站开发中的入侵问题检测

2016-02-20 01:02 14 1 收藏

今天图老师小编给大家介绍下java教程:网站开发中的入侵问题检测,平时喜欢java教程:网站开发中的入侵问题检测的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - Web开发 】

一、简介

 

在Java Web应用程中,特别是网站开发中,我们有时候需要为应用程序增加一个入侵检测程序来防止恶意刷新的功能,防止非法用户不断的往Web应用中重复发送数据。当然,入侵检测可以用很多方法实现,包括软件、硬件防火墙,入侵检测的策略也很多。在这里我们主要介绍的是Java Web应用程序中通过软件的方式实现简单的入侵检测及防御。

 

该方法的实现原理很简单,就是用户访问Web系统时记录每个用户的信息,然后进行对照,并根据设定的策略(比如:1秒钟刷新页面10次)判断用户是否属于恶意刷新。

 

我们的入侵检测程序应该放到所有Java Web程序的执行前,也即若发现用户是恶意刷新就不再继续执行Java Web中的其它部分内容,否则就会失去了意义。这就需要以插件的方式把入侵检测的程序置入Java Web应用中,使得每次用户访问Java Web,都先要到这个入侵检测程序中报一次到,符合规则才能放行。

 

Java Web应用大致分为两种,一种纯JSP(+Java Bean)方式,一种是基于框架(如Struts、EasyJWeb等)的。第一种方式的Java Web可以通过Java Servlet中的Filter接口实现,也即实现一个Filter接口,在其doFilter方法中插入入侵检测程序,然后再web.xml中作简单的配置即可。在基于框架的Web应用中,由于所有应用都有一个入口,因此可以把入侵检测的程序直接插入框架入口引擎中,使框架本身支持入侵检测功能。当然,也可以通过实现Filter接口来实现。

 

在EasyJWeb框架中,已经置入了简单入侵检测的程序,因此,这里我们以EasyJWeb框架为例,介绍具体的实现方法及源码,完整的代码可以在EasyJWeb源码中找到。

 

在基于EasyJWeb的Java Web应用中(如http://www.easyjf.com/bbs/),默认情况下你只要连续刷新页面次数过多,即会弹出如下的错误:

 

EasyJWeb框架友情提示!:-):

您对页面的刷新太快,请等待60秒后再刷新页面!

详细请查询http://www.easyjf.com

 

 

二、用户访问信息记录UserConnect.java类

 

这个类是一个简单的Java Bean,主要代表用户的信息,包括用户名、IP、第一次访问时间、最后登录时间、登录次数、用户状态等。全部

 

代码如下:

 

package com.easyjf.web;

 

import java.util.Date;

/**

*

*

 

Title:用户验证信息

 

 

*

Description:记录用户登录信息,判断用户登录情况

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

 

 

*

Copyright: Copyright (c) 2006

 

 

*

Company: www.easyjf.com

 

 

* @author 蔡世友

* @version 1.0

*/

public class UserConnect {

private String userName;

private String ip;

private Date firstFailureTime;

private Date lastLoginTime;

private int failureTimes;//用户登录失败次数

private int status=0;//用户状态0表示正常,-1表示锁定

public int getFailureTimes() {

return failureTimes;

}

public void setFailureTimes(int failureTimes) {

this.failureTimes = failureTimes;

}

public Date getFirstFailureTime() {

return firstFailureTime;

}

 

public void setFirstFailureTime(Date firstFailureTime) {

this.firstFailureTime = firstFailureTime;

}

 

public String getIp() {

return ip;

}

 

public void setIp(String ip) {

this.ip = ip;

}

 

public Date getLastLoginTime() {

return lastLoginTime;

}

 

public void setLastLoginTime(Date lastLoginTime) {

this.lastLoginTime = lastLoginTime;

}

 

public String getUserName() {

return userName;

}

 

public void setUserName(String userName) {

this.userName = userName;

}

 

public int getStatus() {

return status;

}

 

public void setStatus(int status) {

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

this.status = status;

}

 

}

来源:http://www.tulaoshi.com/n/20160220/1633102.html

延伸阅读
标签: Web开发
多语言网站实现方案 1,静态:就是为每种语言分别准备一套页面文件,要么通过文件后缀名来区分不同语言,要么通过子目录来区分不同语言。 例如对于首页文件index_en.htm提供英语界面,index_gb.htm提供简体中文界面,index_big.htm提供繁体中文界面,或者是 en/index.htm提供英语界面,gb/index.htm提供简体中文界面,big/index.h...
随着网络的不断发展,网络安全也越来越受到关注,原有的防火墙已经越来越难以独立保障网络的安全,这其中包含很多原因,主要是由于防火墙始终在明处抵挡外来的攻击,黑客针对防火墙的手段不断翻新,让它防不胜防,另一方面,很多攻击来源于网络内部,例如内部用户的越权操作或恶意破坏等,这些都对网络安全构成了极大的威胁。为更全面的保护网...
图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等。可视化图表可以帮助开发者更容易理解复杂的数据,提高生产的效率和Web应用和项目的可靠性。 在这篇文章中,我们收集了35款值得网站开发者收藏的JavaScript图形图表库,适合各种图表需求。其中大部分都是免费而且开源的,希望大家能在下面的列表中找到适合自...
标签: Web开发
在用JSP制作的电子商务网站多如牛毛。但是对于JSP网站而言,安全性真的能够让人放心吗?面对层出不穷的黑客攻击和病毒袭击,JSP网站的服务器能够比其他网站的服务器器更加安全吗?前段时间,应朋友之邀,我对他们托管的三台服务器的主机进行了测试,发现了JSP网站存在的几个问题。 入侵测试第一步:扫描 扫描是入侵的第一步,它...
【IT168 软件新闻】星期一早上,黑客入侵了 SCO 网站,作为对“SCO 声称拥有 Linux 操作系统核心版权”说法的回应。 攻击行动发生在美西时间星期一早上 5:30 之前,有人在 SCO 的网站帖出一幅图,上面写着:“we own all your code(我们拥有你们全部的代码)”及“pay us all your money(交出你全部的钱财)”。这个几乎可以以假乱真的图...

经验教程

408

收藏

78
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部