欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java防注入攻擊的代碼,防止js注入攻擊

用java編寫防止SQL注入!求java高手指點(diǎn)!問(wèn)題解決后,一定提高懸賞!

你在init函數(shù)中修改了 inj_str的值, 而你在調(diào)用這個(gè)函數(shù)時(shí)有沒(méi)有傳FilterConfig config啊。

成都創(chuàng)新互聯(lián)公司始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)10多年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:人造霧等企業(yè),備受客戶表?yè)P(yáng)。

java如何防止sql注入

采用預(yù)編譯語(yǔ)句集,它內(nèi)置了處理SQL注入的能力,只要使用它的setString方法傳值即可:

String

sql=

"select

*

from

users

where

username=?;

PreparedStatement

preState

=

conn.prepareStatement(sql);

preState.setString(1,

userName);

preState.setString(2,

password);

ResultSet

rs

=

preState.executeQuery();

java防止SQL注入的幾個(gè)途徑

java防SQL注入,最簡(jiǎn)單的辦法是杜絕SQL拼接,SQL注入攻擊能得逞是因?yàn)樵谠蠸QL語(yǔ)句中加入了新的邏輯,如果使用PreparedStatement來(lái)代替Statement來(lái)執(zhí)行SQL語(yǔ)句,其后只是輸入?yún)?shù),SQL注入攻擊手段將無(wú)效,這是因?yàn)镻reparedStatement不允許在不同的插入時(shí)間改變查詢的邏輯結(jié)構(gòu)?,大部分的SQL注入已經(jīng)擋住了,?在WEB層我們可以過(guò)濾用戶的輸入來(lái)防止SQL注入比如用Filter來(lái)過(guò)濾全局的表單參數(shù)

01??import?java.io.IOException;

02??import?java.util.Iterator;

03??import?javax.servlet.Filter;

04??import?javax.servlet.FilterChain;

05??import?javax.servlet.FilterConfig;

06??import?javax.servlet.ServletException;

07??import?javax.servlet.ServletRequest;

08??import?javax.servlet.ServletResponse;

09??import?javax.servlet.http.HttpServletRequest;

10??import?javax.servlet.http.HttpServletResponse;

11??/**

12??*?通過(guò)Filter過(guò)濾器來(lái)防SQL注入攻擊

13??*

14??*/

15??public?class?SQLFilter?implements?Filter?{

16?private?String?inj_str?=?"'|and|exec|insert|select|delete|update|count|*|%

|chr|mid|master|truncate|char|declare|;|or|-|+|,";?

17??protected?FilterConfig?filterConfig?=?null;

18??/**

19??*?Should?a?character?encoding?specified?by?the?client?be?ignored?

20??*/

21??protected?boolean?ignore?=?true;

22??public?void?init(FilterConfig?config)?throws?ServletException?{

23??this.filterConfig?=?config;

24??this.inj_str?=?filterConfig.getInitParameter("keywords");

25??}

26??public?void?doFilter(ServletRequest?request,?ServletResponse?response,

27??FilterChain?chain)?throws?IOException,?ServletException?{

28??HttpServletRequest?req?=?(HttpServletRequest)request;

29??HttpServletResponse?res?=?(HttpServletResponse)response;

30??Iterator?values?=?req.getParameterMap().values().iterator();//獲取所有的表單參數(shù)

31??while(values.hasNext()){

32??String[]?value?=?(String[])values.next();

33??for(int?i?=?0;i??value.length;i++){

34??if(sql_inj(value[i])){

35??//TODO這里發(fā)現(xiàn)sql注入代碼的業(yè)務(wù)邏輯代碼

36??return;

37??}

38??}

39??}

40??chain.doFilter(request,?response);

41??}

42??public?boolean?sql_inj(String?str)

43??{

44??String[]?inj_stra=inj_str.split("\\|");

45??for?(int?i=0?;?i??inj_stra.length?;?i++?)

46??{

47??if?(str.indexOf("?"+inj_stra[i]+"?")=0)

48??{

49??return?true;

50??}

51??}

52??return?false;

53??}

54??}

也可以單獨(dú)在需要防范SQL注入的JavaBean的字段上過(guò)濾:

1???/**

2???*?防止sql注入

3???*

4???*?@param?sql

5???*?@return

6???*/

7???public?static?String?TransactSQLInjection(String?sql)?{

8???return?sql.replaceAll(".*([';]+|(--)+).*",?"?");

9???}

當(dāng)前標(biāo)題:java防注入攻擊的代碼,防止js注入攻擊
文章出自:http://chinadenli.net/article42/hdoshc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站制作、靜態(tài)網(wǎng)站、建站公司、做網(wǎng)站、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名