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

江涛涛努力

江涛涛努力

2016-02-20 01:02

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

一、简介

 

在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:记录用户登录信息,判断用户登录情况

 

 

*

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) {

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

this.userName = userName;

}

 

public int getStatus() {

return status;

}

 

public void setStatus(int status) {

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

this.status = status;

}

 

}

展开更多 50%)
分享

猜你喜欢

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

Web开发 语言程序设计
java教程:网站开发中的入侵问题检测

Java基础 JSP网站开发环境的目录结构标准

编程语言 网络编程
Java基础 JSP网站开发环境的目录结构标准

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java Web中的入侵检测及简单实现

编程语言 网络编程
Java Web中的入侵检测及简单实现

关于在Java Web中的入侵检测及简单实现

编程语言 网络编程
关于在Java Web中的入侵检测及简单实现

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

基于JSP的动态网站开发技术

Web开发
基于JSP的动态网站开发技术

JAVA开发中的中文处理问题

编程语言 网络编程
JAVA开发中的中文处理问题

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

新手必读之PowerPoint字体“随身带”

新手必读之PowerPoint字体“随身带”

JavaScript教程:网页浮动定位提示效果

JavaScript教程:网页浮动定位提示效果
下拉加载更多内容 ↓