日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
JSP和Servlet應(yīng)用的安全問(wèn)題

一、概述 

創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比泰和網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式泰和網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋泰和地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴(lài)。

當(dāng)網(wǎng)絡(luò)編程越來(lái)越方便,系統(tǒng)功能越來(lái)越強(qiáng)大,安全性卻指數(shù)倍地下降。這恐怕就是網(wǎng)絡(luò)編程的不幸和悲哀了。各種動(dòng)態(tài)內(nèi)容生成環(huán)境繁榮了WWW,它們的設(shè)計(jì)目標(biāo)就是為了給開(kāi)發(fā)者更多的力量,給最終用戶(hù)更多的方便。正因?yàn)槿绱?,系統(tǒng)設(shè)計(jì)師和開(kāi)發(fā)者必須明確地把安全問(wèn)題作為一個(gè)考慮因素,事后追悔很難奏效。

從安全的角度來(lái)看,服務(wù)器端WWW應(yīng)用的弱點(diǎn)來(lái)源于各種各樣的交互能力和傳輸通道。它們是攻擊者直接可以用來(lái)影響系統(tǒng)的工具。在攻擊者尋找和利用系統(tǒng)安全漏洞時(shí),它們總是給系統(tǒng)安全帶來(lái)壓力。對(duì)付所有這些攻擊的通用防衛(wèi)策略就是所謂的輸入驗(yàn)證。 
從同一層面考慮,主要有兩種設(shè)計(jì)上的錯(cuò)誤導(dǎo)致了安全方面的問(wèn)題: 
◆拙劣的訪問(wèn)控制,以及 
◆對(duì)部署環(huán)境作隱含的假設(shè)。 

在有關(guān)安全的文獻(xiàn)中,針對(duì)訪問(wèn)控制問(wèn)題有著許多深入的分析。這里我們要討論的是底層實(shí)現(xiàn)(代碼和配置)上的安全管理問(wèn)題,討論的環(huán)境是JSP?;蛘哒f(shuō),我們將討論惡意的用戶(hù)輸入偽裝自身以及改變應(yīng)用預(yù)定行為的各種方法,考慮如何檢驗(yàn)輸入合法性以及減少對(duì)信息和應(yīng)用接口的不受歡迎的探測(cè)。 

二、JSP概述 

JSP技術(shù)允許把Java代碼邏輯嵌入到HTML和XML文檔之內(nèi),為創(chuàng)建和管理動(dòng)態(tài)WWW內(nèi)容帶來(lái)了方便。JSP頁(yè)面由JSP引擎預(yù)先處理并轉(zhuǎn)換成Java Servlet,此后如果出現(xiàn)了對(duì)JSP頁(yè)面的請(qǐng)求,Web服務(wù)器將用相應(yīng)的Servlet輸出結(jié)果作為應(yīng)答。雖然JSP和Servlet在功能上是等價(jià)的,但是,JSP和Servlet相比,JSP的動(dòng)態(tài)內(nèi)容生成方法恰好相反:JSP是把Java代碼嵌入到文檔之中,而不是把文檔嵌入到Java應(yīng)用之中。為訪問(wèn)外部功能和可重用的對(duì)象,JSP提供了一些用來(lái)和JavaBean組件交互的額外標(biāo)記,這些標(biāo)記的語(yǔ)法和HTML標(biāo)記相似。值得注意的是:HTML語(yǔ)法屬于JSP語(yǔ)法的一個(gè)子集(一個(gè)純HTML文檔是一個(gè)合法的JSP頁(yè)面),但反過(guò)來(lái)不一定正確。特別地,為了便于動(dòng)態(tài)生成內(nèi)容和格式,JSP允許在標(biāo)記之內(nèi)嵌入其他標(biāo)記。例如,下面是一段合法的JSP代碼: 

從本文后面可以看到,這種結(jié)構(gòu)增加了安全問(wèn)題的復(fù)雜性。與CGI相比,JSP具有更好的性能和會(huì)話管理(即會(huì)話狀態(tài)持久化)機(jī)制。這主要通過(guò)在同一個(gè)進(jìn)程之內(nèi)運(yùn)用Java線程處理多個(gè)Servlet實(shí)現(xiàn),而CGI一般要求為每一個(gè)請(qǐng)求分別創(chuàng)建和拆除一個(gè)進(jìn)程。 

三、安全問(wèn)題 

由于完全開(kāi)放了對(duì)服務(wù)器資源的訪問(wèn),從JSP頁(yè)面轉(zhuǎn)換得到的不安全Servlet可能給服務(wù)器、服務(wù)器所在的網(wǎng)絡(luò)、訪問(wèn)頁(yè)面的客戶(hù)機(jī)之中的任意一個(gè)或全體帶來(lái)威脅,甚至通過(guò)DDoS或蠕蟲(chóng)分布式攻擊,還可能影響到整個(gè)Internet。人們往往假定,Java作為一種類(lèi)型安全的、具有垃圾收集能力的、具有沙箱(Sandbox)機(jī)制的語(yǔ)言,它能夠奇跡般地保證軟件安全。而且事實(shí)上,許多在其他語(yǔ)言中存在的低層次安全問(wèn)題,比如緩沖或堆溢出,很少給Java程序帶來(lái)危害。然而,這并不意味著人們很難寫(xiě)出不安全的Java程序,特別是對(duì)編寫(xiě)Servlet來(lái)說(shuō)。驗(yàn)證輸入和控制對(duì)資源的訪問(wèn)是始終必須關(guān)注的問(wèn)題。另外,JSP的體系結(jié)構(gòu)相當(dāng)復(fù)雜,其中包含許多相互協(xié)作的子系統(tǒng)。這些子系統(tǒng)之間的交互常常是安全隱患的根源。除此之外,雖然現(xiàn)在所有的JSP實(shí)現(xiàn)都圍繞著Java,但JSP規(guī)范允許幾乎所有其他語(yǔ)言扮演這個(gè)角色。這樣,這些替代語(yǔ)言的安全問(wèn)題也必須加以考慮。 

簡(jiǎn)而言之,在JSP系統(tǒng)中產(chǎn)生安全漏洞的機(jī)會(huì)是相當(dāng)多的。下面我們將討論它們中最常見(jiàn)的一部分。 

四、非置信用戶(hù)輸入的一般問(wèn)題 

非置信的用戶(hù)輸入(Untrusted User Input)實(shí)際上包含了所有的用戶(hù)輸入。用戶(hù)輸入來(lái)源于客戶(hù)端,可以通過(guò)許多不同的途徑到達(dá)服務(wù)器端,有時(shí)甚至是偽裝的。為JSP和Servlet服務(wù)器提供的用戶(hù)輸入包括(但不限于): 
◆請(qǐng)求URL的參數(shù)部分, 
◆HTML表單通過(guò)POST或GET請(qǐng)求提交的數(shù)據(jù), 
◆在客戶(hù)端臨時(shí)保存的數(shù)據(jù)(也就是Cookie), 
◆數(shù)據(jù)庫(kù)查詢(xún), 
◆其它進(jìn)程設(shè)置的環(huán)境變量。 

用戶(hù)輸入的問(wèn)題在于,它們由服務(wù)器端的應(yīng)用程序解釋?zhuān)怨粽呖梢酝ㄟ^(guò)修改輸入數(shù)據(jù)達(dá)到控制服務(wù)器脆弱部分的目的。服務(wù)器的脆弱部分常常表現(xiàn)為一些數(shù)據(jù)訪問(wèn)點(diǎn),這些數(shù)據(jù)由用戶(hù)提供的限定詞標(biāo)識(shí),或通過(guò)執(zhí)行外部程序得到。 

JSP能夠調(diào)用保存在庫(kù)里面的本地代碼(通過(guò)JNI)以及執(zhí)行外部命令。類(lèi)Runtime提供了一個(gè)exec()方法。exec()方法把它的第一個(gè)參數(shù)視為一個(gè)需要在獨(dú)立的進(jìn)程中執(zhí)行的命令行。如果這個(gè)命令字符串的某些部分必須從用戶(hù)輸入得到,則用戶(hù)輸入必須先進(jìn)行過(guò)濾,確保系統(tǒng)所執(zhí)行的命令和它們的參數(shù)都處于意料之內(nèi)。即使命令字符串和用戶(hù)輸入沒(méi)有任何關(guān)系,執(zhí)行外部命令時(shí)仍舊必須進(jìn)行必要的檢查。在某些情況下,攻擊者可能修改服務(wù)器的環(huán)境變量影響外部命令的執(zhí)行。例如,修改path環(huán)境變量,讓它指向一個(gè)惡意的程序,而這個(gè)惡意程序偽裝成了exec()所調(diào)用程序的名字。為了避免這種危險(xiǎn),在進(jìn)行任何外部調(diào)用之前顯式地設(shè)置環(huán)境變量是一種較好的習(xí)慣。具體的設(shè)置方法是:在exec()調(diào)用中,把一個(gè)環(huán)境變量的數(shù)組作為第二個(gè)參數(shù),數(shù)組中的元素必須是 name=value格式。

【編輯推薦】

  1. Java Servlets(JSP)開(kāi)發(fā)環(huán)境
  2. 開(kāi)發(fā)JSP HTTP服務(wù)器
  3. 選擇JSP開(kāi)發(fā)工具
  4. Servlet和JSP路徑詳細(xì)介紹
  5. JSP Servlet中傳遞技術(shù)要點(diǎn)

網(wǎng)頁(yè)題目:JSP和Servlet應(yīng)用的安全問(wèn)題
文章地址:http://www.5511xx.com/article/dhpgpsh.html