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