前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的糧食安全措施及對(duì)策主題范文,僅供參考,歡迎閱讀并收藏。
>> 關(guān)于云計(jì)算應(yīng)用安全問題的探討 糧食安全問題的探討 探討WLAN中的安全問題 變電運(yùn)行安全問題的探討 體育教學(xué)安全問題的探討 有關(guān)網(wǎng)絡(luò)應(yīng)用中的安全問題及其應(yīng)對(duì)策略的探討 放射源在煤田測(cè)井應(yīng)用中的安全問題探討 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用安全問題及防范措施的探討 對(duì)于移動(dòng)互聯(lián)網(wǎng)應(yīng)用安全問題的探討 基于“互聯(lián)網(wǎng)+”的醫(yī)院無線應(yīng)用安全問題探討 新加坡的安全問題 網(wǎng)絡(luò)背景下的信息安全問題探討 論云計(jì)算及其安全問題的分析探討 建筑安全問題的分析與探討 對(duì)水閘混凝土結(jié)構(gòu)安全問題的探討 對(duì)建筑工程安全問題的探討 基于食品質(zhì)量安全問題的探討 探討深基坑支護(hù)存在的安全問題 WLAN在商務(wù)運(yùn)用中安全問題的探討 探討雙匯食品安全問題背后的原因 常見問題解答 當(dāng)前所在位置:,*.html)中插入Java程序段和JSP標(biāo)記,從而形成JSP文件(*.JSP)。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。JSP是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
JSP技術(shù)以利用現(xiàn)存的工具和技巧,并且能擴(kuò)展到支持企業(yè)級(jí)的分布式應(yīng)用中。作為采用Java技術(shù)家族的一部分,以及Java 2的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。 由于JSP頁面的內(nèi)置腳本語言是基于Java的,而且所有的JSP頁面都被編譯成為Java Servlets,所以JSP頁面具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java編程語言“一次編寫,各處運(yùn)行”的特點(diǎn)。
JSP頁面通常被編譯成為Java Servlets,這是一個(gè)標(biāo)準(zhǔn)的Java擴(kuò)展。頁面開發(fā)人員能夠訪問全部的Java應(yīng)用環(huán)境,以利用Java技術(shù)的擴(kuò)展性和可移植性。當(dāng)JSP頁面第一次被調(diào)用時(shí),如果它還不存在,就會(huì)被編譯成為一個(gè)Java Servlets類,并且存儲(chǔ)在服務(wù)器的內(nèi)存中。這就使得在接下來的對(duì)該頁面的調(diào)用中,服務(wù)器會(huì)有非??斓捻憫?yīng)。
2 JSP應(yīng)用的安全問題
由于完全開放了對(duì)服務(wù)器資源的訪問,從JSP頁面轉(zhuǎn)換得到的不安全Servlet可能給服務(wù)器、服務(wù)器所在的網(wǎng)絡(luò)、訪問頁面的客戶機(jī)之中的任意一個(gè)或全體帶來威脅,甚至通過DDoS或蠕蟲分布式攻擊,還可能影響到整個(gè)Internet。特別是對(duì)編寫Servlet來說。驗(yàn)證輸入和控制對(duì)資源的訪問是始終必須關(guān)注的問題。JSP的體系結(jié)構(gòu)相當(dāng)復(fù)雜,其中包含許多相互協(xié)作的子系統(tǒng)。這些子系統(tǒng)之間的交互常常是安全隱患的根源。
Cookie是服務(wù)器保存到客戶端的少量信息,服務(wù)器提取這些信息以維持會(huì)話狀態(tài)或跟蹤客戶端瀏覽器的活動(dòng)。由于兩個(gè)原因,如果把敏感數(shù)據(jù)保存到Cookie,安全受到了威脅:第一,Cookie的全部內(nèi)容對(duì)客戶端來說都是可見的;第二,雖然瀏覽器一般不提供偽造Cookie的能力,但沒有任何東西能夠阻止用戶用完全偽造的Cookie應(yīng)答服務(wù)器。
1)中嵌入惡意標(biāo)記
CERT Advisory CA-2000-02描述了客戶在請(qǐng)求中嵌入惡意HTML標(biāo)記的問題。這個(gè)問題一般被稱為“cross site scripting”問題,這種攻擊通常包含一個(gè)由用戶提交的病態(tài)腳本,或者包含惡意的HTML標(biāo)記,JSP引擎會(huì)把這些內(nèi)容引入到動(dòng)態(tài)生成的頁面。這種攻擊可能針對(duì)其他用戶進(jìn)行,也可能針對(duì)服務(wù)器,但后者不太常見?!癱ross site scripting”攻擊的典型例子可以在論壇服務(wù)器上看到,因?yàn)檫@些服務(wù)器允許用戶在自己提交的文章中嵌入格式化標(biāo)記。通常,被濫用的標(biāo)記是那些能夠把代碼嵌入到頁面的標(biāo)記,比如、、和。另外還有一些標(biāo)記也會(huì)帶來危險(xiǎn),特別地,可能被用于欺騙瀏覽者暴露敏感信息。要防止出現(xiàn)這種問題當(dāng)然要靠輸入檢查和輸出過濾。這類檢查必須在服務(wù)器端進(jìn)行,不應(yīng)依賴于客戶端腳本,因?yàn)闆]有任何東西能夠阻止用戶逃避客戶端檢驗(yàn)過程。
2)守好JavaBean的入口
JSP組件技術(shù)的核心是被稱為bean的java組件。在程序中可把邏輯控制、數(shù)據(jù)庫操作放在javabeans組件中,然后在JSP文件中調(diào)用它,這樣可增加程序的清晰度及程序的可重用性。和傳統(tǒng)的ASP或PHP頁面相比,JSP頁面是非常簡潔的,因?yàn)樵S多動(dòng)態(tài)頁面處理過程可以封裝到JavaBean中。每個(gè)JavaBean組件封裝了一些可以不依賴于調(diào)用環(huán)境而獨(dú)立使用的數(shù)據(jù)和功能。Bean包含數(shù)據(jù)成員(屬性),并通過Get和Set方法實(shí)現(xiàn)訪問這些屬性的標(biāo)準(zhǔn)API。為快速初始化指定Bean的所有屬性,JSP提供了一種快捷方式,即在查詢字符串中提供name=value對(duì),并讓它匹配目標(biāo)屬性的名字??紤]下面這個(gè)使用Bean的例子(以XML格式顯示):
你的購物籃
你已經(jīng)把商品: 加入到購物籃
金額是$ 準(zhǔn)備付款
正常情況下,HTML表單構(gòu)造的查詢字符串就是這種形式。但問題在于,沒有任何東西能夠防止用戶設(shè)置balance屬性:server/addToBasket.JSP? newItem=ITEM0105342&balance=0 ;處理頁面的標(biāo)記時(shí),JSP容器會(huì)把這個(gè)參數(shù)映射到Bean中具有同樣名字的balance屬性,并嘗試把該屬性設(shè)置為0。為避免出現(xiàn)這種問題,JSP開發(fā)者必須在Bean的Set和Get方法中實(shí)現(xiàn)某種安全措施,同時(shí),在使用的通配符時(shí)也應(yīng)該小心謹(jǐn)慎。
3)Cookie中的敏感數(shù)據(jù)
CGI協(xié)議是把請(qǐng)求數(shù)據(jù)從客戶端傳輸?shù)椒?wù)器端,最簡單的方法是GET請(qǐng)求方法。使用GET請(qǐng)求方法時(shí),輸入數(shù)據(jù)附加到請(qǐng)求URL之后,格式如下:
URL[name=value[&name=value[&...]]]
對(duì)于傳輸敏感數(shù)據(jù)來說,這種編碼方式是不合適的,因?yàn)橥ǔG闆r下,整個(gè)URL和請(qǐng)求字符串都以明文方式通過通信通道。所有路由設(shè)備都可以和服務(wù)器一樣記錄這些信息。如果要在客戶請(qǐng)求中傳輸敏感數(shù)據(jù),應(yīng)該使用POST方法,再加上一種合適的加密機(jī)制。
3 漏洞與源代碼安全
JSP實(shí)現(xiàn),在一定的階段都會(huì)出現(xiàn)給系統(tǒng)帶來危險(xiǎn)的安全隱患。根據(jù)目前已經(jīng)發(fā)現(xiàn)的JSP安全問題,主要有源代碼暴露類、遠(yuǎn)程程序執(zhí)行類。
1)源代碼暴露類
源代碼暴露類別主要指的是程序源代碼會(huì)以明文的方式返回給訪問者。JSP動(dòng)態(tài)程序在服務(wù)器端執(zhí)行的,執(zhí)行后只會(huì)返回給訪問者標(biāo)準(zhǔn)的html等代碼。這是理論上的東西,實(shí)際運(yùn)行起來由于服務(wù)器內(nèi)部機(jī)制的問題就有可能引起源代碼暴露的漏洞。
下面主要介紹一下引起JSP源代碼暴漏的主要原因:
①特殊后綴的添加
JSP是大小寫敏感的,Tomcat只會(huì)將小寫的JSP后綴的文件當(dāng)作是正常的JSP文件來執(zhí)行,在JSP中就會(huì)存在著JSP文件后綴大寫漏洞;JSP 文件后加特殊字符如Resin1.2的%82、../漏洞;ServletExec的%2E、+漏洞等等。如果大寫了就會(huì)引起Tomcat將index.jsp當(dāng)作是一個(gè)可以下載的文件讓客戶下載。
解決辦法是在服務(wù)器軟件的網(wǎng)站上下載補(bǔ)丁;因?yàn)橐郧坝眠^asp一段時(shí)間,接觸了很多IIS的漏洞,它的有效解決方法是去掉不必要的映射如htr、htx等,在JSP中我們同樣可以參考IIS的解決方法,不同的是不是去掉而是添加映射,方法為在服務(wù)器設(shè)置中添加一些映射如.JSP 、.JSP、.JSP%2E等,將他們映射到一個(gè)自己寫的servlet,這個(gè)Servlet的唯一功能就是將請(qǐng)求導(dǎo)向一個(gè)自定義的類似404 not found的出錯(cuò)頁面,不同的服務(wù)器設(shè)置的地方也不同,請(qǐng)參考相應(yīng)的文檔。第二種解決方法可以在沒有補(bǔ)丁的時(shí)候采用。
②特殊字符串的插入
IBM WebSphere 3.0.2是調(diào)用不同的servlets對(duì)不同的頁面進(jìn)行處理,如果一個(gè)請(qǐng)求的文件是未進(jìn)行注冊(cè)管理的,WebSphere 會(huì)使用一個(gè)默認(rèn)的servlet調(diào)用。特殊字符串的插入引起的漏洞,BEA WebLogic Enterprise 5.1文件路徑開頭為 "/file/" 的漏洞、IBM WebSphere 3.0.2的"/servlet/file/"文件開頭漏洞等等。如果文件路徑以"/servlet/file/"作開頭這個(gè)默認(rèn)的servlet會(huì)被調(diào)用這個(gè)請(qǐng)求的文件會(huì)未被分析或編譯就顯示出來。解決方法是在服務(wù)器軟件的網(wǎng)站下載最新的補(bǔ)丁。
③路徑權(quán)限引起的文件JSP源代碼暴露
大部分的JSP應(yīng)用程序在當(dāng)前目錄下都會(huì)有一個(gè)WEB-INF目錄,這個(gè)目錄通常存放的是JavaBeans編譯后的class文件,如果不給這個(gè)目錄設(shè)置正常的權(quán)限,所有的class就會(huì)曝光。安全問題更大的就是,把數(shù)據(jù)庫的用戶名密碼都寫在了Java代碼中,現(xiàn)在一反編譯誰都能看到數(shù)據(jù)庫的重要信息。通過數(shù)據(jù)庫的遠(yuǎn)程連接功能,可以輕松的進(jìn)入到你的數(shù)據(jù)庫中,所有信息全部在他手中。附帶說一句,如果用戶能獲得SQL Server的用戶名口令,進(jìn)入數(shù)據(jù)庫中可以執(zhí)行任意的dos命令如查看c:文件、建立和刪除目錄等,那樣整個(gè)Windows系統(tǒng)都不安全了。
解決方法是將asp程序單獨(dú)放置一個(gè)目錄,目錄設(shè)置上用戶權(quán)限只能執(zhí)行不能讀取。在JSP環(huán)境下同樣可以通過設(shè)置服務(wù)器的環(huán)境來解決這個(gè)問題,簡單的說,就是將一些比較重要的目錄如WEB-INF、classes等設(shè)置上訪問的權(quán)限,不允許讀而取只允許執(zhí)行。以apache下解決為例,可以在httpd.conf文件中添加一目錄WEB-INF并設(shè)置Deny from all等屬性。更為重要的是密碼的保存問題。在JSP中可以寫一個(gè)property文件,放置在WINNT系統(tǒng)目錄下,然后用Bean來讀取數(shù)據(jù)庫信息,這樣就算源代碼被人知道起碼數(shù)據(jù)庫是安全的。(下轉(zhuǎn)第1143頁)
(上接第1127頁)
④文件不存在引起的絕對(duì)路徑暴露問題
這個(gè)問題相信大家都比較熟悉了,因?yàn)槲④汭IS中也有比較多的類似問題。如微軟IIS5.0中的*.idc暴露絕對(duì)路徑漏洞。同樣的這些問題現(xiàn)在也轉(zhuǎn)到了JSP環(huán)境中,這個(gè)漏洞暴露了web程序的絕對(duì)硬盤地址,和其他漏洞結(jié)合就具有比較大的危害了。因?yàn)樨?fù)責(zé)JSP執(zhí)行的相關(guān)Servlet中處理異常的時(shí)候沒有過濾掉這種情況。解決方法是下載最新的補(bǔ)丁;如果當(dāng)時(shí)的web服務(wù)器軟件沒有這個(gè)補(bǔ)丁,可以找到服務(wù)器軟件的JSP執(zhí)行映射Servlet文件,將它用JAD軟件反編譯,在反編譯后的源代碼中找到處理Exception的方法,然后將方法中的處理部分全部注釋掉,并將請(qǐng)求導(dǎo)向到一個(gè)自定義的出錯(cuò)頁面中,這樣問題就解決了。
2)遠(yuǎn)程程序執(zhí)行類
遠(yuǎn)程程序執(zhí)行類通過url 地址在瀏覽器中執(zhí)行任意服務(wù)器上的命令和程序,從而引起安全問題。遠(yuǎn)程執(zhí)行任意命令漏洞、iPlanet Web Server 4.x存在一個(gè)緩沖區(qū)溢出漏洞等等。如果URL請(qǐng)求的目標(biāo)文件使用了前綴/servlet/,則JSP解釋執(zhí)行功能被激活。這時(shí)在用戶請(qǐng)求的目標(biāo)文件路徑中使用../,就有可能訪問到WEB服務(wù)器上根目錄以外的文件。目標(biāo)主機(jī)上利用該漏洞請(qǐng)求用戶輸入產(chǎn)生的一個(gè)文件,將嚴(yán)重威脅到目標(biāo)主機(jī)系統(tǒng)的安全。解決方法是安裝最新的補(bǔ)丁。
4 總結(jié)
JSP應(yīng)用安全和數(shù)據(jù)保護(hù)這些防范措施都有一定的限度,并不是越安全就越可靠,JSP存在著很多安全上的問題的,客觀的說,服務(wù)器軟件的開發(fā)商在內(nèi)部測(cè)試中不可能將系統(tǒng)中的所有bug找出來,即使了軟件后,被發(fā)現(xiàn)的漏洞也只會(huì)是其中的很小一部分,將來還會(huì)不斷的有新的安全問題出現(xiàn),所以我們必須時(shí)刻提高警惕,并注意自己網(wǎng)站的安全,在看一個(gè)JSP網(wǎng)站是否安全時(shí)不僅要考察其技術(shù)手段,更重要的是對(duì)該網(wǎng)站所采取的各種安全措施,從而保證網(wǎng)站的安全性。
參考文獻(xiàn):
[1] 張國祥.基于Apache的Web安全技術(shù)的應(yīng)用研究[J].武漢理工大學(xué)學(xué)報(bào),2004(3).
[2] 單歐.SSL在web安全中的應(yīng)用[J].信息網(wǎng)絡(luò)安全,2004.
[3] 王勇.嵌入式Internet的技術(shù)實(shí)現(xiàn)及其安全問題的研究[D].浙江大學(xué),2002.