java開(kāi)發(fā)常見(jiàn)漏洞及處理說(shuō)明_第1頁(yè)
java開(kāi)發(fā)常見(jiàn)漏洞及處理說(shuō)明_第2頁(yè)
java開(kāi)發(fā)常見(jiàn)漏洞及處理說(shuō)明_第3頁(yè)
java開(kāi)發(fā)常見(jiàn)漏洞及處理說(shuō)明_第4頁(yè)
java開(kāi)發(fā)常見(jiàn)漏洞及處理說(shuō)明_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余4頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Java 常見(jiàn)漏洞及處理說(shuō)明楊博本文專(zhuān)門(mén)介紹針對(duì) javawebjavaweb 程序常見(jiàn)高危安全漏洞(如:SQLSQL注入、XSSXSS 跨站腳本攻擊、文件上傳)的過(guò)濾和攔截處理,確保系統(tǒng)能夠安全的運(yùn)行。一.SQL 注入(SQLInjection)經(jīng)分析確認(rèn)本系統(tǒng)對(duì) SQLSQL 注入做了相應(yīng)的過(guò)濾處理,可以有效應(yīng)對(duì) SQLSSQLS 入攻擊,確保系統(tǒng)安全。詳細(xì)說(shuō)明:攻擊方式:所謂SQL注入式攻擊,就是的輸入域或頁(yè)面請(qǐng)求的查詢字符串,欺騙服務(wù)器執(zhí)行惡意的SQL命令。防御方式:對(duì)用戶輸入或請(qǐng)求進(jìn)行預(yù)驗(yàn)證處理,過(guò)濾掉可能造成惡意 SQLSQL 的字符。本系統(tǒng)屬于政府部門(mén)門(mén)戶網(wǎng)站,用戶發(fā)布的是新聞動(dòng)

2、態(tài),不會(huì)涉及到學(xué)術(shù)研究 SQLSQL 方面的東西,所以本系統(tǒng)采用過(guò)濾器的方式對(duì)用戶輸入或請(qǐng)求進(jìn)行過(guò)濾處理,如果輸入或請(qǐng)求涉及惡意 SQLSQL 方面的字符將一律過(guò)濾掉,這不會(huì)影響用戶的使用,同時(shí)確保了系統(tǒng)的安全。系統(tǒng)配置文件 web.xmlweb.xml 初始化時(shí)同時(shí)初始化過(guò)濾器,過(guò)濾器起到全局作用,并設(shè)置為針對(duì)所有請(qǐng)求。七1一防止腿工注入的過(guò)濾器一,com*jeecns.ccnunon.web.f11wer-clas3filturl-過(guò)濾器 AntiSqlInjectionfilter:針對(duì)所有請(qǐng)求過(guò)濾器qllnjection-prnpublicclassAnt1SqlInjectionfl

3、iter1mplenientspublicvoiddestroy()/TODOAuto-generatedmethcdstubpublicvoidinit(FilterCorifigargOthrowsServletException/TODOAuco-generaedmethodstubpublicvoiddoFilcer(ServleRequestServleERespanseargjslFilterChainchain)throwslOExceptionjrServletExceptionHttpServletRequestreq=(HttpServletRequestJjargaO;H

4、EtpServlerResponseres(HctpServlecResponse)argsl;/獲得所有請(qǐng)求參數(shù)名Enumerationparams=req.getParair.eterNain.e3);Scringsql;while(Farains.hasMoreEleiiienrs()/得到參觸名Stringname.parains*nextElerr.ent0*coString();/System,cut print.Xn(“口am已=時(shí)+name+/福熊數(shù)對(duì)應(yīng)值Stririgvalue=req-getParajneterValues(name);for(int1=Q;ivalue.l

5、ength;i+)jql-sql+valueij;/Syacn*outprintlnC+3(1;/有怒區(qū)關(guān)鍵字,跳轉(zhuǎn)到曰工工口工.titmlif(rglVali-date(3ql),throwTIJEW工QExs叩5所 L 您發(fā)送話求中的妻數(shù)中含有非法字濟(jì)府”/String線二號(hào)q q號(hào)7:RcmtiRodT4;3elseCchain,doFiIter(argsDPargs1):/效瞄amt&ateda-tatiabooleansalVa.Llilai:e1SLclctgatr)scr*境一專(zhuān)專(zhuān)為小寫(xiě)3匕士工agh&diSc-r三|三冀白亡|executejinsert|ael

6、ecE-jdle匕型|updAtEjeaum|drop|*I%ichtlaid|ter|匕亡由 亡由E-e|+char|d-clare|sitenanue|的2匕LL9e|Mp_=m-L5h.ell|;|or|-|+1|Ixke8|and|exec|exemate|insert|create|zlrcp|r,+11table|rotE.|grant|use|grcup_cc!n.cat|CDT.iaTin_-am.eJn+*mfonT-at.!,L_sich.emji-ccLjmns|table_3ch.enia.|UEiianwhere.select|delete|update|ardsz|

7、hy|EOLLnt.|*|H+*chr|nu.d|M-icer|trumcHte|char|deciare|or|;|-|一|+|t|like|/|/11;|*j/過(guò)波陣的工眼親健字:!可以下動(dòng)添加String)badSr:-badStr.jsplit|HJ;f-erinti*OJibo心tin,tungi;:i+*JCifJtrrindexOtb.dStr-3i|K3treWmtmejretornfailees二.XS 斂擊(DOMXSSStoredXSS、ReflectedXSS)經(jīng)確認(rèn)本系統(tǒng)已對(duì) XSStXSSt 擊做了攔截及過(guò)濾處理,達(dá)到了有效對(duì)抗 XSStXSSt 擊的效果,確保系統(tǒng)

8、的安全。詳細(xì)說(shuō)明:攻擊方式:XSSXSS 又稱 CSSCSS 全稱 CrossSiteScriptCrossSiteScript,跨站腳本攻擊,是 WebSWebS 序中常見(jiàn)的漏洞,XSSXSS 屬于被動(dòng)式且用于客戶端的攻擊方式,所以容易被忽略其危Filter害性。其原理是攻擊者向有 XSSXSS 漏洞的網(wǎng)站中輸入(傳入)惡意的 HTMLHTML 弋碼,當(dāng)其它用戶瀏覽該網(wǎng)站時(shí),這段 HTMLHTML 弋碼會(huì)自動(dòng)執(zhí)行,從而達(dá)到攻擊的目的。如,盜取用戶 CookieCookie、破壞頁(yè)面結(jié)構(gòu)、重定向到其它網(wǎng)站等。防御方式:需要對(duì)用戶的輸入進(jìn)行處理,只允許輸入合法的值,其它值一概過(guò)濾掉。本系統(tǒng)提供了

9、專(zhuān)門(mén)的針對(duì) XSSXSS 攻擊的過(guò)濾器,過(guò)濾掉了 html/javaScripthtml/javaScript 中的標(biāo)簽符號(hào),防止惡意 HTMLHTML 弋碼。系統(tǒng)配置文件 web.xmlweb.xml 初始化時(shí)同時(shí)初始化過(guò)濾器,過(guò)濾器起到全局作用,并設(shè)置為針對(duì)所有請(qǐng)求。-防止XSB攻擊的過(guò)漉器一XB3Filtercom.jeecms.coiriLon.web*XssFilterexcludeUrls=ram-viL2e/meiiijDer/contrparinrVralueaiE-irr.SplicChar/pararr.-FilteTChar1fix/param-valueKcplaceC

10、harwg#g:Z%ajn-valeilter-mappingXssFilter*.jspxc/url-patten1fxx*針對(duì)所有清親filcer-r.M-er點(diǎn)擊進(jìn)入過(guò)濾器類(lèi) XssFilterXssFilteriHportjrio,iOExe4it.icin;nlEiplcriteintB:Fllt-erprivatiC5ErljvjCllrerCbazj!privateStaringrcpl4aeCbar;private:5Ering-JFllrCh&z;privHiteStringeKGljdeUris;FllcerCunfigfilrezCanf3.gnnll;pobli

11、avoidiiut(FiltecCoafigfiLterCcuEigFthrcrsrBServlet-Ex-Mptian4thti.fHECEOiAi:llXrCcinfL.gi(1燈EXInlrF-E詢T;1|*ELLcitxZhbxn);tbis.rplaceOiar-fliterCcrnfLUuetIiu.tariJT.e,cer|ReplaccilLarJ;thia.iplitC2Mt!:ClT:*TCQFif1g.B-EIHIEFAtrAirjetAZ-11Vqp11匚OIHH11”tblviejccludeUzJ.tilGerCcDfig;(retlintf-az-ur.eEez|

12、u兀匚工支二e:Uzlm)彳tht*rf11MECOSI.ifl-filtitFCwfig;Jpnhllcvoidde-STzayn,tltrfllc.trCaneig力修Li:pabLicvoiddieFilterSterTle-Recjuesi:reqiiejr,;SerTle-ReispDi-aezejpaziae,.nicerZKaliLcJuulnFthramIDEcepi:ioiirSezvlerExcepclQDif1ifffjcludcVrl(EequesC-J)Cszh&in.dfiFilrerfrequeue,rtsFczisehlseCJLB.111.SFilre

13、r|newXssEcEpSexvlei:3LcqTje3T;iara:pper1E匚tpSesvleriiequeac:rie:qE.e-31:rflIteEOiazrrepla.ceCh.a.r,.aplitOiz卜rreapanse)privatebooleanxsExcludeUrl(ServleLPlequescrequ.e5Ljboolean.exclu.de=false;if(StringUtils,i5NotBlanA(excludeUrlsJStringeKcludeUrl=eMcludeUrls split(splitChar:ifiexcludeUrl!=nul1s:5ex

14、aludeUr1rl-ength0)for(Stringurl:excludeUrl)if(URLHelpex,getDRI(HttpServletRequest)request) startsWith(url)exclude=tme;returneKQrlude;針對(duì) HttpRequestHttpRequest 請(qǐng)求pnblicclassXssHttpServletRequeatKrapperextendsHttpServletRequestXrapperprivateStringfilcerChars;privateString(replaceChars;publicXssHttpSer

15、vletRequestWrapper(HttpServletRequestrequest,StrinqfilterChar,SerinareplaceChar,StrinqsplitChar)nupcr(rcquejc);if(filterChar!null&ilterChar.length()0rxizerChara-filterChar.splitopliChar);ir( (replaceChar!null44replaceChar.length()0)replaceChars-replaceChax.split(aplitChax);publicSerinaaetQuerySt

16、rlna()(Stringvaluesuper.gecQueryScr();if(value!-null.)vaiu.xEncod(vlu) );returnvalue;*董aecP學(xué):皿ete1方法,將等數(shù)名和袋韻ffl都他xss過(guò)渡。*如果需要荻用原始的值,則通過(guò)super.gecParaxeceduc(nag)來(lái)荻取vbr/*ParamtrM*ma#P r和P r也向能再獎(jiǎng)?wù)?publicStringqetPazameter(Stringnase)Stringvaluesuper.gecPararrcer(xssEncode(nawe):if(value!-null)valuexssE

17、ncode(value):returnvalue;publicStringgetParameterValues(Stringname)Soringparameters-super,getParameterValues(name);if(parametersnull|parameters.length-0)returnnull;)for(int1=0;1parameters.length;1+)parameters(i=xssEncode(parametersi);returnparameters;*覆蓋gzHyier萬(wàn)法,將參數(shù)名和參數(shù)值都做燈號(hào)過(guò)濾。如果需要獲得原始的值,則通過(guò)supp工.g

18、zHBadus(name)來(lái)獲取8工/getHeaderNames也可能需要覆蓋*/publicSoringgetHeader(Stringname)Stringvalue=super.gecHeader(xssEncode(name);if(value!=null)value=xssEncode(value);returnvalue;將容易引起其短漏洞的半角字符直接替換成全角字符*params*return*/privateStringxssEncode(Stringsif=null|5.equals(,hH)returns;try(shUEtLDecoder,decode(sFUTF):catch(UnsuppartedEncadingExcepticne)/TODOAuto-generatedcatchblock:eiprintStack:Trace();torint1=0;ifllterChars.length;1+if(a,contains(filterChars11)B=B.replace(filterChar

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論