亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號

在Java Web中的入侵檢測及簡單實現(xiàn)(1)
2008-04-21   

一、簡介

在Java Web應用程中,特別是網(wǎng)站開發(fā)中,我們有時候需要為應用程序增加一個入侵檢測程序來防止惡意刷新的功能,防止非法用戶不斷的往Web應用中重復發(fā)送數(shù)據(jù)。當然,入侵檢測可以用很多方法實現(xiàn),包括軟件、硬件防火墻,入侵檢測的策略也很多。在這里我們主要介紹的是Java Web應用程序中通過軟件的方式實現(xiàn)簡單的入侵檢測及防御。

該方法的實現(xiàn)原理很簡單,就是用戶訪問Web系統(tǒng)時記錄每個用戶的信息,然后進行對照,并根據(jù)設(shè)定的策略(比如:1秒鐘刷新頁面10次)判斷用戶是否屬于惡意刷新。

我們的入侵檢測程序應該放到所有Java Web程序的執(zhí)行前,也即若發(fā)現(xiàn)用戶是惡意刷新就不再繼續(xù)執(zhí)行Java Web中的其它部分內(nèi)容,否則就會失去了意義。這就需要以插件的方式把入侵檢測的程序置入Java Web應用中,使得每次用戶訪問Java Web,都先要到這個入侵檢測程序中報一次到,符合規(guī)則才能放行。

Java Web應用大致分為兩種,一種純JSP(+Java Bean)方式,一種是基于框架(如Struts、EasyJWeb等)的。第一種方式的Java Web可以通過Java Servlet中的Filter接口實現(xiàn),也即實現(xiàn)一個Filter接口,在其doFilter方法中插入入侵檢測程序,然后再web.xml中作簡單的配置即可。在基于框架的Web應用中,由于所有應用都有一個入口,因此可以把入侵檢測的程序直接插入框架入口引擎中,使框架本身支持入侵檢測功能。當然,也可以通過實現(xiàn)Filter接口來實現(xiàn)。

在EasyJWeb框架中,已經(jīng)置入了簡單入侵檢測的程序,因此,這里我們以EasyJWeb框架為例,介紹具體的實現(xiàn)方法及源碼,完整的代碼可以在EasyJWeb源碼中找到。

在基于EasyJWeb的Java Web應用中(如http://www.easyjf.com/bbs/),默認情況下你只要連續(xù)刷新頁面次數(shù)過多,即會彈出如下的錯誤:

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

您對頁面的刷新太快,請等待60秒后再刷新頁面!

詳細請查詢http://www.easyjf.com

二、用戶訪問信息記錄UserConnect.java類

這個類是一個簡單的Java Bean,主要代表用戶的信息,包括用戶名、IP、第一次訪問時間、最后登錄時間、登錄次數(shù)、用戶狀態(tài)等。全部

代碼如下:

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;//用戶登錄失敗次數(shù)
private int status=0;//用戶狀態(tài)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) {
this.status = status;
}
}


共2頁: 1 [2] 下一頁

熱詞搜索:

上一篇:重新審視企業(yè)IPS的應用:Web安全防御的利劍
下一篇:專家談:超越UTM定制化網(wǎng)絡(luò)安全平臺的價值

分享到: 收藏