精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺析Java Web應用中的入侵檢測

開發 后端
Java Web應用程中我們有時候需要為應用程序增加一個入侵檢測程序來防止惡意刷新的功能,防止非法用戶不斷的往Web應用中重復發送數據。

一、簡介

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

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

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

this.userName = userName;

}

public int getStatus() {

return status;

}

public void setStatus(int status) {

this.status = status;

}

}

三、監控線程UserConnectManage.java類

這是入侵檢測的核心部分,主要實現具體的入侵檢測、記錄、判斷用戶信息、在線用戶的刷新等功能,并提供其它應用程序使用本組件的調用接口。

package com.easyjf.web;

import java.util.Date;

import java.util.HashMap;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

import org.apache.log4j.Logger;

/**

*

*

Title:用戶入侵檢測信息

*

Description:用于判斷用戶刷新情況檢查,默認為10秒鐘之內連續連接10次為超時

*

Copyright: Copyright (c) 2006

*

Company: www.easyjf.com

* @author 蔡世友

* @version 1.0

*/

public class UserConnectManage {

private static final Logger logger = (Logger) Logger.getLogger(UserConnectManage.class.getName());

private static int maxFailureTimes=10;//最大登錄失敗次數

private static long maxFailureInterval=10000;//毫秒,達到最大登錄次數且在這個時間范圍內

private static long waitInterval=60000;//失敗后接受連接的等待時間,默認1分鐘

private static int maxOnlineUser=200;//同時在線的最大數

private final static Map users=new HashMap();//使用ip+userName為key存放用戶登錄信息UserLoginAuth

private static Thread checkThread=null;

private static class CheckTimeOut implements Runnable{

private Thread parentThread;

public CheckTimeOut(Thread parentThread)

{

this.parentThread=parentThread;

synchronized(this){

if(checkThread==null){

checkThread= new Thread(this);

//System.out.println("創建一個新線程!");

checkThread.start();

}

}

}

public void run() {

while(true)

{

if(parentThread.isAlive()){

try{

Thread.sleep(2000);

int i=0;

if(users.size()>maxOnlineUser)//當達到最大用戶數時清除

{

synchronized(users){//執行刪除操作

Iterator it=users.keySet().iterator();

Set set=new HashSet();

Date now=new Date();

while(it.hasNext())

{

Object key=it.next();

UserConnect user=(UserConnect)users.get(key);

if(now.getTime()-user.getFirstFailureTime().getTime()>maxFailureInterval)//刪除超時的用戶

{

set.add(key);

logger.info("刪除了一個超時的連接"+i);

i++;

}

}

if(i<5)//如果刪除少于5個,則強行刪除1/2在線記錄,犧牲性能的情況下保證內存

{

int num=maxOnlineUser/2;

it=users.keySet().iterator();

while(it.hasNext() && i {

set.add(it.next());

logger.info("刪除了一個多余的連接"+i);

i++;

}

}

users.keySet().removeAll(set);

}

}

}

catch(Exception e)

{

e.printStackTrace();

}

}

else

{

break;

}

}

logger.info("監視程序運行結束!");

}

}

//通過checkLoginValidate判斷是否合法的登錄連接,如果合法則繼續,非法則執行

public static boolean checkLoginValidate(String ip,String userName)//只檢查認證失敗次數

{

boolean ret=true;

Date now=new Date();

String key=ip+":"+userName;

UserConnect auth=(UserConnect)users.get(key);

if(auth==null)//把用戶當前的訪問信息加入到users容器中

{

auth=new UserConnect();

auth.setIp(ip);

auth.setUserName(userName);

auth.setFailureTimes(0);

auth.setFirstFailureTime(now);

users.put(key,auth);

if(checkThread==null)new CheckTimeOut(Thread.currentThread());

}

else

{

if(auth.getFailureTimes()>maxFailureTimes)

{

//如果在限定的時間間隔內,則返回拒絕用戶連接的信息

if((now.getTime()-auth.getFirstFailureTime().getTime()) {

ret=false;

auth.setStatus(-1);

}

else if(auth.getStatus()==-1 && (now.getTime()-auth.getFirstFailureTime().getTime()<(maxFailureInterval+waitInterval)))//重置計數器

{

ret=false;

}

else

{

auth.setFailureTimes(0);

auth.setFirstFailureTime(now);

auth.setStatus(0);

}

}

//登錄次數加1

auth.setFailureTimes(auth.getFailureTimes()+1);

}

//System.out.println(key+":"+auth.getFailureTimes()+":"+ret+":"+(now.getTime()-auth.getFirstFailureTime().getTime()));

return ret;

}

public static void reset(String ip,String userName)//重置用戶信息

{

Date now=new Date();

String key=ip+":"+userName;

UserConnect auth=(UserConnect)users.get(key);

if(auth==null)//把用戶當前的訪問信息加入到users容器中

{

auth=new UserConnect();

auth.setIp(ip);

auth.setUserName(userName);

auth.setFailureTimes(0);

auth.setFirstFailureTime(now);

users.put(key,auth);

}

else

{

auth.setFailureTimes(0);

auth.setFirstFailureTime(now);

}

}

public static void remove(String ip,String userName)//刪除用戶在容器中的記錄

{

String key=ip+":"+userName;

users.remove(key);

}

public static void clear()//清空容器中內容

{

if(!users.isEmpty())users.clear();

}

public static long getMaxFailureInterval() {

return maxFailureInterval;

}

public static void setMaxFailureInterval(long maxFailureInterval) {

UserConnectManage.maxFailureInterval = maxFailureInterval;

}

public static int getMaxFailureTimes() {

return maxFailureTimes;

}

public static void setMaxFailureTimes(int maxFailureTimes) {

UserConnectManage.maxFailureTimes = maxFailureTimes;

}

public static int getMaxOnlineUser() {

return maxOnlineUser;

}

public static void setMaxOnlineUser(int maxOnlineUser) {

UserConnectManage.maxOnlineUser = maxOnlineUser;

}

public static long getWaitInterval() {

return waitInterval;

}

public static void setWaitInterval(long waitInterval) {

UserConnectManage.waitInterval = waitInterval;

}

四、調用接口

在需要進入侵檢測判斷的地方,直接使用UserConnectManage類中的checkLoginValidate方法即可。如EasyJWeb的核心Servlet 

com.easyjf.web.ActionServlet中調用UserConnectManage的代碼:

if(!UserConnectManage.checkLoginValidate(request.getRemoteAddr(),"guest"))

{

info(request,response,new Exception("您對頁面的刷新太快,請等待"+UserConnectManage.getWaitInterval()/1000+"秒

后再刷新頁面!"));

return;

}

五、總結

當然,這里提供的方法只是一個Java Web開發中的簡單實現示例,由于上面的用戶信息是直接保存在內存中,若并發用戶很大的時候的代碼的占用,可以考慮引入數據庫來記錄用戶的訪問信息,當然相應的執行效率肯定用降低。上面介紹的入侵檢測的實現中,入侵檢測判斷的策略也只有用戶訪問次數及時間間隔兩個元素,您還可以根據你的實現情況增加其它的檢測元素。

【編輯推薦】

  1. Red Hat CEO呼吁甲骨文繼續保持Java開放
  2. 自學Javabean迅速成為Java高手
  3. Java通過JNI調用C語言的方法
  4. 高手Java核心技術學習筆記
  5. 成為Java高手需要注意的25個學習目標
責任編輯:王觀 來源: 賽迪網
相關推薦

2011-03-04 13:17:51

2009-03-23 10:04:46

Java Web入侵檢Java Web應用EasyJWeb

2009-09-04 10:21:00

2009-07-09 16:47:26

Servlet的Web

2022-05-10 11:23:56

漏洞補洞過程入侵檢測

2009-01-16 14:08:42

PHP開發Web應用執行效率

2011-12-29 15:35:39

Web

2010-08-26 10:12:54

2019-05-17 09:20:01

2009-12-17 17:31:10

2009-07-08 15:31:40

JDK 6.0web service

2011-12-30 16:30:39

Java

2010-08-30 09:50:34

2009-03-03 13:51:15

2011-08-12 11:36:07

2011-04-06 13:39:18

2012-07-09 10:21:30

2010-10-25 11:59:19

2010-09-09 23:06:34

2012-10-10 11:36:02

點贊
收藏

51CTO技術棧公眾號

国产精品白丝jk白祙喷水网站| 久草成人在线| 亚洲第一成人在线| 欧美日韩精品免费观看| 亚洲一区 中文字幕| 欧美午夜精品| 日韩精品福利网站| 成年人三级黄色片| 日韩伦理在线一区| 亚洲三级电影网站| 国产一区二区黄色| 在线免费观看av片| 国产视频一区在线观看一区免费| 综合久久五月天| v天堂中文在线| 99视频有精品高清视频| 色综合久久久久综合体桃花网| 在线不卡日本| 人操人视频在线观看| 国产乱理伦片在线观看夜一区| 日本中文字幕久久看| 国产在线视频卡一卡二| 国产精品久久观看| 国产亚洲欧美日韩精品| 日本在线不卡一区二区| 99精品在线免费观看| 91久久人澡人人添人人爽欧美| 日韩精品在线中文字幕| 欧美jizz18性欧美| 国产亚洲欧美中文| 精品伦精品一区二区三区视频| 国产又粗又黄又爽视频| 日韩电影在线免费| 日本国产高清不卡| 国产无遮无挡120秒| 亚洲91精品| 中文字幕亚洲一区在线观看| 欧美色图亚洲激情| 四虎影视精品| 亚洲精品国精品久久99热一| 亚洲免费观看在线| 精品视频一二| 69av一区二区三区| 国产欧美精品一二三| 成人黄色免费观看| 欧美性色黄大片| 白嫩少妇丰满一区二区| 永久免费毛片在线播放| 懂色av中文一区二区三区天美| 欧美黑人在线观看| 中文字幕在线三区| 伊人婷婷欧美激情| 欧美中日韩在线| 国产蜜臀一区二区打屁股调教| 一区二区成人在线| 欧美狂野激情性xxxx在线观| 日本欧美电影在线观看| 一区二区三区四区乱视频| 50度灰在线观看| 日韩成人伦理| 亚洲一本大道在线| 精品无码一区二区三区在线| 国产在线美女| 欧美日韩在线免费| 久久精品视频91| 51一区二区三区| 欧美人牲a欧美精品| 在线一区二区不卡| 中文字幕一区二区三区中文字幕| 日韩精品一区二区三区在线 | 亚洲男人天堂2019| 国产jjizz一区二区三区视频| 天天久久夜夜| 中文欧美日本在线资源| 欧美第一页在线观看| 在线播放亚洲| 国产成一区二区| 国产精品丝袜黑色高跟鞋| 国产成人免费在线观看不卡| 精品国产_亚洲人成在线| 国产小视频免费在线网址| 国产精品午夜在线| 天天做天天躁天天躁| 一区二区精品伦理...| 欧美日韩国产一级| 中文字幕视频观看| 国产毛片一区二区三区| 久久精品中文字幕| 青青草av在线播放| 九九久久精品视频| 久久综合入口| 操你啦视频在线| 欧美色videos| 欧美体内she精高潮| 亚州精品视频| 久久精品视频一| 欧美bbbbbbbbbbbb精品| 精品无码三级在线观看视频| 国产综合动作在线观看| 五月婷婷在线视频| 婷婷久久综合九色综合伊人色| 亚洲三级视频网站| 97se亚洲| 日韩中文字幕精品| 国产成人精品一区二三区| 久久se精品一区精品二区| 国产精品一区二区三区精品| 国产黄色免费在线观看| 午夜一区二区三区视频| www.com黄色片| 天堂成人娱乐在线视频免费播放网站 | 国产精自产拍久久久久久| 性一交一乱一伧老太| 日本一区二区三区久久久久久久久不 | 亚洲av成人无码网天堂| 1024亚洲合集| 九色91popny| 小嫩嫩12欧美| 久久久久五月天| 国产乱子伦精品无码码专区| 国产日韩亚洲欧美综合| 成人在线免费观看av| 色播一区二区| 久久亚洲私人国产精品va| 国产精品欧美综合| 久久午夜羞羞影院免费观看| 成人在线视频一区二区三区| 久久精品xxxxx| 亚洲香蕉成视频在线观看| 久久久午夜影院| 成人精品视频一区| 国产美女作爱全过程免费视频| 亚洲资源在线| 久久精彩免费视频| 中文字幕在线一| 国产色一区二区| 欧美aⅴ在线观看| 网曝91综合精品门事件在线| 国语自产精品视频在线看一大j8 | 黄色aaa级片| 久久91麻豆精品一区| 欧美又大又硬又粗bbbbb| 韩国av免费在线观看| 亚洲愉拍自拍另类高清精品| 杨幂一区二区国产精品| 亚洲天堂免费| 99精品在线直播| 美女网站视频在线| 精品国产一区二区精华| 日本最新中文字幕| 2024国产精品| 欧美精品无码一区二区三区| 国产剧情在线观看一区| 国产精品激情自拍| 国产污视频在线| 欧美午夜不卡在线观看免费| 女人黄色一级片| 久久精品国产77777蜜臀| 中文字幕一区二区三区在线乱码| 一区在线不卡| 欧美黄色片在线观看| 黄色一级大片在线免费看国产一| 亚洲国产综合视频在线观看| 中文字幕影片免费在线观看| 亚洲欧美日韩一区在线观看| 日韩动漫在线观看| 日韩成人综合网站| 欧美乱大交xxxxx另类电影| 高h放荡受浪受bl| 色乱码一区二区三区88| 精品一区二区6| 国产精品一区二区三区乱码| 91动漫在线看| 久久成人av| 成人在线观看视频网站| 羞羞电影在线观看www| 亚洲国产一区自拍| 亚洲av人无码激艳猛片服务器| 国产精品国产三级国产普通话三级| 亚洲va在线va天堂va偷拍| 国产一区激情| 午夜一区二区三区| 中文字幕一区图| 国产精品久久久久久久久男| 好吊日视频在线观看| 亚洲丁香久久久| 正在播放木下凛凛xv99| 亚洲一区二区三区在线看| 色哟哟精品观看| 国产精品一区二区三区网站| 妞干网在线免费视频| 亚洲精品99| 欧洲精品码一区二区三区免费看| 蜜桃精品一区二区三区| 日本在线观看天堂男亚洲| 在线观看中文字幕的网站| 亚洲欧美日韩网| 亚洲黄色小说网| 欧美日韩专区在线| 韩国av免费观看| 亚洲少妇最新在线视频| 国产av自拍一区| 高清成人在线观看| 欧美日韩中文不卡| 免费亚洲视频| 男人天堂手机在线视频| 日韩在线看片| 青娱乐国产91| 美女福利一区| 亚洲在线免费看| av成人免费看| 日本最新高清不卡中文字幕| 神马午夜伦理不卡| 中文字幕国产精品| 亚洲欧美自偷自拍| 欧美电影免费提供在线观看| 在线观看视频二区| 色婷婷久久久综合中文字幕 | 一二三不卡视频| 国产电影精品久久禁18| wwwwwxxxx日本| 日韩中文字幕亚洲一区二区va在线 | 欧美激情第六页| 岛国精品一区| 亚洲aaa激情| av一级久久| 成人国产精品久久久久久亚洲| 澳门av一区二区三区| 欧美在线视频一区| 超碰成人av| 久久久久久12| 怡红院在线播放| 久久99国产精品久久久久久久久| 日韩三级影院| 久久精品成人动漫| 理论片午午伦夜理片在线播放| 伊是香蕉大人久久| 亚洲s色大片| 色系列之999| 欧美r级在线| 不卡av电影院| 宅男在线观看免费高清网站| 欧美猛交ⅹxxx乱大交视频| 麻豆网站在线看| 日韩视频永久免费观看| 欧美激情办公室videoshd| 中文字幕日韩综合av| 日韩在线资源| 欧美精品一区三区| av影片在线| 青草青草久热精品视频在线观看| 一二三四视频在线中文| 国产精品ⅴa在线观看h| 黄色精品视频| 成人在线精品视频| 日本免费精品| 国产一区精品视频| 免费成人av| 亚洲日本无吗高清不卡| 亚洲最新色图| 一卡二卡三卡视频| 视频一区在线播放| 久久久久久蜜桃一区二区| 国产一区二区三区免费在线观看| 女人扒开腿免费视频app| 国产高清精品久久久久| 成人免费无码大片a毛片| 国产亚洲精品中文字幕| 国精产品一区一区二区三区mba| 一区二区三区四区在线| 久久99精品波多结衣一区| 在线国产亚洲欧美| 国产乱人乱偷精品视频| 亚洲国产精彩中文乱码av在线播放| 深夜福利在线视频| 日韩亚洲欧美成人| brazzers在线观看| 国产精品久久久久久av下载红粉| 麻豆国产一区| 久久综合九色综合网站| 91精品99| 37pao成人国产永久免费视频| 老汉av免费一区二区三区| 成人在线观看一区二区| 国产日韩欧美精品综合| 精品国产乱码久久久久久鸭王1 | 久久久久久91香蕉国产| 日韩一区二区三区在线免费观看| 亚洲综合国产精品| 国产影视精品一区二区三区| 福利在线一区二区| 麻豆国产精品777777在线| 日韩精品视频一区二区| 亚洲欧洲另类国产综合| 日本一级一片免费视频| 欧美高清视频不卡网| 日本在线一二三| 欧美丰满片xxx777| 青青青国产精品| 久久精品一区二区三区不卡免费视频| 91亚洲一区| www.爱色av.com| 国产激情91久久精品导航 | 国产精品一二区| 国产乱人伦丫前精品视频| 亚洲精品一区二区三区四区五区 | jizz18女人| 久久久久久免费毛片精品| 国产五月天婷婷| 日韩一二三四区| 色哟哟免费在线观看| 日韩美女在线看| 免费观看成人www动漫视频| 欧美aaa在线观看| 蜜臀精品一区二区三区在线观看| 亚洲视频在线播放免费| 亚洲精品一二三区| 国产精品久久久久久69| 在线播放国产一区二区三区| 国产三级电影在线播放| 成人免费视频视频在| 久久精品影视| 亚洲精品免费一区亚洲精品免费精品一区 | 91国偷自产一区二区三区成为亚洲经典 | 视频一区视频二区中文| 黄色短视频在线观看| 亚洲国产精品影院| 亚洲AV无码成人片在线观看| 久久久精品影院| 99亚洲男女激情在线观看| 正在播放精油久久| 久久电影国产免费久久电影| 欧美人妻一区二区三区| 色综合久久66| 免费国产在线视频| 国产成人avxxxxx在线看| 蜜臀av免费一区二区三区 | 666av成人影院在线观看| 免费日韩av电影| 久久精品一区二区国产| 美女久久久久久久久久| 色欧美片视频在线观看| 国产大片在线免费观看| 国产精品久久久久久久久免费| 成人黄色小视频| 亚洲一级片网站| 日韩一区日韩二区| 国产偷拍一区二区| 欧美激情乱人伦一区| 高清一区二区三区| 欧美日韩在线一| 久久久久久亚洲综合| 亚洲av人无码激艳猛片服务器| 日韩中文有码在线视频| 亚洲日本中文| 激情五月婷婷六月| 久久综合九色综合97_久久久| 岛国av中文字幕| 日韩视频在线一区| 亚洲五码在线| 国产综合av在线| 国产精品视频在线看| 国产女人18毛片18精品| 欧美日韩国产999| 日韩美脚连裤袜丝袜在线| 免费日韩中文字幕| 亚洲视频在线一区二区| 午夜精品久久久久久久99热黄桃| 国模吧一区二区三区| 国产精品午夜一区二区三区| 伊人网在线综合| 亚洲午夜久久久久久久久电影院 | 亚洲欧美在线高清| 亚洲精品成人电影| 日本久久91av| 亚洲激情中文在线| 久久偷拍免费视频| 欧美日韩国产小视频在线观看| 怡红院在线播放| 欧美日韩精品不卡| 国产精品一区二区久久不卡 | 国产精品一区专区| 亚洲 欧美 日韩 综合| 中文字幕成人精品久久不卡| 在线精品视频一区| 九九视频精品在线观看| 一个色综合av| av在线电影观看| 国产伦理一区二区三区| 蜜臀久久99精品久久久画质超高清 | 国产精品午夜一区二区欲梦| 黄色av一区| 操她视频在线观看| 亚洲精品丝袜日韩| 日韩一区免费| 国产又猛又黄的视频| 亚洲h在线观看| caopon在线免费视频| 日韩免费av一区二区三区| 成人小视频在线观看|