成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSP和Servlet應用的安全問題

開發 后端
本文介紹JSP和Servlet應用的安全問題,在JSP系統中產生安全漏洞的機會是相當多的,下面我們將討論它們中最常見的一部分。

一、概述 

當網絡編程越來越方便,系統功能越來越強大,安全性卻指數倍地下降。這恐怕就是網絡編程的不幸和悲哀了。各種動態內容生成環境繁榮了WWW,它們的設計目標就是為了給開發者更多的力量,給最終用戶更多的方便。正因為如此,系統設計師和開發者必須明確地把安全問題作為一個考慮因素,事后追悔很難奏效。

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

在有關安全的文獻中,針對訪問控制問題有著許多深入的分析。這里我們要討論的是底層實現(代碼和配置)上的安全管理問題,討論的環境是JSP。或者說,我們將討論惡意的用戶輸入偽裝自身以及改變應用預定行為的各種方法,考慮如何檢驗輸入合法性以及減少對信息和應用接口的不受歡迎的探測。 

二、JSP概述 

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

 


從本文后面可以看到,這種結構增加了安全問題的復雜性。與CGI相比,JSP具有更好的性能和會話管理(即會話狀態持久化)機制。這主要通過在同一個進程之內運用Java線程處理多個Servlet實現,而CGI一般要求為每一個請求分別創建和拆除一個進程。 

三、安全問題 

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

簡而言之,在JSP系統中產生安全漏洞的機會是相當多的。下面我們將討論它們中最常見的一部分。 

四、非置信用戶輸入的一般問題 

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

用戶輸入的問題在于,它們由服務器端的應用程序解釋,所以攻擊者可以通過修改輸入數據達到控制服務器脆弱部分的目的。服務器的脆弱部分常常表現為一些數據訪問點,這些數據由用戶提供的限定詞標識,或通過執行外部程序得到。 

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

【編輯推薦】

  1. Java Servlets(JSP)開發環境
  2. 開發JSP HTTP服務器
  3. 選擇JSP開發工具
  4. Servlet和JSP路徑詳細介紹
  5. JSP Servlet中傳遞技術要點
責任編輯:佚名 來源: IT168
相關推薦

2009-07-07 13:29:33

Servlet和JSP

2012-11-20 10:47:16

2010-06-28 15:52:17

2015-12-24 10:55:05

2011-05-04 18:14:48

2009-07-06 15:34:56

JSP和Servlet

2009-07-01 17:34:03

Servlet和JSP

2009-07-06 09:49:26

Servlet JSP

2018-10-08 14:53:16

2012-10-16 10:18:20

Temenos Mis云安全云計算

2009-07-01 13:54:41

Servlet和JSP

2009-07-08 09:22:03

Servlet和JSP

2013-04-23 09:14:22

可重用云工具Java安全框架云中間件

2021-12-29 15:55:34

安全數據信息安全

2009-08-10 09:19:28

Servlet JSP

2009-07-01 15:25:16

Servlet和JSP

2013-04-23 09:24:51

2017-08-17 17:48:06

2019-04-04 11:55:59

2009-07-07 13:42:57

Servlet JSP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 三级成人在线观看 | 午夜影院普通用户体验区 | 亚洲专区在线 | 亚洲91精品 | 国产精品国产馆在线真实露脸 | 国产在线观看一区二区三区 | 国产精品一区二区三区在线 | 亚洲午夜精品视频 | 国产日韩精品久久 | 久热久热 | 蜜桃精品视频在线 | 亚洲精品第一国产综合野 | 日韩欧美中文字幕在线观看 | 一区二区视屏 | www.久久久.com| 国产日韩久久久久69影院 | 亚洲一区二区三区 | 伊人网99 | 亚州午夜精品 | 色综合天天综合网国产成人网 | 成人在线免费观看视频 | 婷婷久久综合 | 国产精品一级 | 亚洲成人激情在线观看 | 日本久久精 | 久久高清 | 欧美精品一区二区三区在线播放 | 亚洲欧美成人影院 | 国产精品亚洲精品 | 成人一区二区三区在线观看 | 国产日韩精品视频 | 亚洲成人精品久久久 | 二区欧美| 99精品在线观看 | 日本高清中文字幕 | 精品视频一区二区三区在线观看 | 国产福利在线免费观看 | 中文字幕99 | 日韩国产专区 | 精品乱码一区二区 | 成人免费视频网站在线看 |