韓雪嬌 冶金工業(yè)信息中心
基于JSP網(wǎng)站的安全漏洞分析與解決方案研究
韓雪嬌 冶金工業(yè)信息中心
JSP技術(shù)可更好的展現(xiàn)網(wǎng)站的動(dòng)態(tài)信息,所以在網(wǎng)站開發(fā)中廣泛應(yīng)用。但JSP技術(shù)也帶來了一些安全隱患,被非法訪問者用于攻擊網(wǎng)站。本文列舉了常見的JSP網(wǎng)站漏洞并分析產(chǎn)生的原因,進(jìn)而提出解決方案以保障JSP網(wǎng)站的安全。
JSP技術(shù) 網(wǎng)站漏洞 網(wǎng)站安全
隨著JSP技術(shù)在網(wǎng)站開發(fā)中的應(yīng)用,網(wǎng)站承載的信息量更大,交互性更好,用戶體驗(yàn)更豐富。但JSP技術(shù)也為網(wǎng)站安全帶來隱患,遭受非法訪問者的入侵,篡改網(wǎng)頁內(nèi)容,盜取網(wǎng)站數(shù)據(jù)等。故在基于JSP網(wǎng)站開發(fā)中發(fā)現(xiàn)漏洞,并防御或阻止外來惡意或無意的攻擊顯得舉足輕重。
JSP(Java Server Pages)是一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),在傳統(tǒng)HTML網(wǎng)頁文件中插入Java程序段(Scriptlet)和JSP標(biāo)記(Tag)。JSP的工作機(jī)制是當(dāng)一個(gè)JSP文件首次被請(qǐng)求時(shí),JSP引擎將其轉(zhuǎn)換為一個(gè)Servlet,然后執(zhí)行該Servlet的JspInit()方法并調(diào)用JspService()方法來處理客戶端的請(qǐng)求。對(duì)于每一個(gè)請(qǐng)求,JSP引擎都將創(chuàng)建一個(gè)新的線程來處理該請(qǐng)求。JSP技術(shù)具有快速、平臺(tái)無關(guān)、可擴(kuò)展、面向?qū)ο蟮忍匦?,越來越多的網(wǎng)站開始將其平臺(tái)架構(gòu)在JSP環(huán)境中。但其安全漏洞是阻礙其發(fā)展的主要障礙之一。
2.1 配置類漏洞
常見的配置類漏洞有源代碼暴露,通常文件后綴和路徑可引起的源代碼暴露。在Web服務(wù)器Tomcat的3.1版本中,一般訪問的網(wǎng)址后綴應(yīng)為.jsp,若包含大寫字母(如.Jsp或.jSp),瀏覽器執(zhí)行對(duì)應(yīng)請(qǐng)求時(shí)則提示下載該文件,而文件中包含該網(wǎng)頁的源代碼。分析該漏洞產(chǎn)生的原因?yàn)镴SP的Web服務(wù)器是區(qū)分字母的大小寫。該漏洞的解決方法有定期升級(jí)Web服務(wù)器,也可以通過配置服務(wù)器映射文件,將含有大寫字母的JSP文件的請(qǐng)求導(dǎo)向報(bào)錯(cuò)頁面。
在CIOPI中國鐵礦石價(jià)格指數(shù)網(wǎng)站研發(fā)中出現(xiàn)了配置類漏洞,在web.xml配置文件中Strust2僅僅攔截.action請(qǐng)求。導(dǎo)致非法訪問者可通過在瀏覽器的地址欄直接輸入網(wǎng)址目錄結(jié)構(gòu)的方式來訪問網(wǎng)站的JSP頁面。解決方法為修改web.xml配置文件中Strust2配置文件,不僅攔截.action請(qǐng)求,而且攔截.jsp請(qǐng)求。
2.2 SQL注入漏洞
SQL注入攻擊的實(shí)現(xiàn)方法為非法訪問者提交個(gè)人編造的數(shù)據(jù)庫查詢語句,獲得感興趣的數(shù)據(jù)?;贘SP的網(wǎng)站通常都與數(shù)據(jù)庫相關(guān)聯(lián),并需要執(zhí)行增刪改查操作。例如,登錄頁面通常包含select * from admin where username='XXX' and password='YYY'的SQL語句,若非法訪問者在表單的“用戶名”文本框中輸入'1'='1',并在“密碼”文本框中輸入'123456'。此時(shí),SQL語句就變成了:select * from admin where username='1'='1' and password='123456',分析該語句可知'1'='1'的值永遠(yuǎn)都是true,從而實(shí)現(xiàn)SQL注入攻擊。
避免SQL注入攻擊的方法一般有過濾用戶提交的表單數(shù)據(jù)、替換敏感字符等。在CIOPI中國鐵礦石價(jià)格指數(shù)網(wǎng)站的登錄頁面中,僅允許用戶提交字母、數(shù)字及下劃線的組合字符串,且長度也必須滿足要求。
2.3 跨站腳本攻擊
跨站腳本攻擊是指非法訪問者在HTML頁面中注入惡意腳本并構(gòu)造一個(gè)跨站頁面,再利用script等方式誘發(fā)用戶瀏覽該頁面時(shí)觸發(fā)被攻擊站點(diǎn)的HTTP請(qǐng)求,從而達(dá)到對(duì)網(wǎng)站或系統(tǒng)的攻擊。非法訪問者可通過XSS屏蔽頁面或者偽造頁面,顯示拒絕服務(wù)攻擊而突破內(nèi)外網(wǎng)的安全設(shè)置等,從而獲取用戶Cookie中的敏感數(shù)據(jù)并給網(wǎng)站帶來破壞與威脅。造成這種漏洞的原因?yàn)樵谑褂肑SP研發(fā)設(shè)計(jì)的網(wǎng)站時(shí)程序沒有對(duì)用戶提交的變量中的HTML代碼進(jìn)行過濾或轉(zhuǎn)換。故常用的措施有:
(1)過濾用戶提交的請(qǐng)求,控制get/post請(qǐng)求參數(shù)的長度、格式和有效字符等;
(2)通過綁定cookie和系統(tǒng)IP的方式降低cookie泄露的危險(xiǎn);
(3)采用用戶交互的方式,通過驗(yàn)證碼技術(shù)來攔截非預(yù)期特權(quán)的操作;
(4)寫到頁面的信息盡量加以encode,避免暴露HTML Tag;
(5)實(shí)現(xiàn)Session標(biāo)記等防止功能被第三方網(wǎng)站執(zhí)行。
綜上所述,列舉基于JSP網(wǎng)站存在的安全方面的常見漏洞,并且以CIOPI中國鐵礦石價(jià)格指數(shù)網(wǎng)為例,分析漏洞產(chǎn)生的原因與解決方案,從而保障JSP網(wǎng)站的安全。
[1]歐陽林.校園網(wǎng)站入侵攻擊的查找與防范[J].電腦編程技巧與維護(hù),2017,(1)
[2]趙莉,劉瀟誼.Web安全登錄方案研究[J].電腦編程技巧與維護(hù):2016,(1):36-38