一、簡介
在Java Web應用程中,特別是網(wǎng)站開發(fā)中,我們有時候需要為應用程序增加一個入侵檢測程序來防止惡意刷新的功能,防止非法用戶不斷的往Web應用中重復發(fā)送數(shù)據(jù)。當然,入侵檢測可以用很多方法實現(xiàn),包括軟件、硬件防火墻,入侵檢測的策略也很多。在這里我們主要介紹的是Java Web應用程序中通過軟件的方式實現(xiàn)簡單的入侵檢測及防御。
該方法的實現(xiàn)原理很簡單,就是用戶訪問Web系統(tǒng)時記錄每個用戶的信息,然后進行對照,并根據(jù)設定的策略(比如: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秒后再刷新頁面!
二、用戶訪問信息記錄UserConnect.java類
這個類是一個簡單的Java Bean,主要代表用戶的信息,包括用戶名、IP、第一次訪問時間、最后登錄時間、登錄次數(shù)、用戶狀態(tài)等。全部
代碼如下:
|
共2頁: 1 [2] 下一頁 | ||
|