摘要:由于Internet的開放性及在設計時對于信息的保密和系統的安全考慮不完備,造成現在網絡的攻擊與破壞事件層出不窮,給人們的日常生活和經濟活動造成了很大麻煩。WWW服務作為現今Internet上使用的最廣泛的服務,JSP站點被黑客入侵的事件屢有發生,安全問題已引起人們的極大重視。該文重點探討了JSP應用安全問題,對當前JSP的一些主要漏洞進行了剖析,并提出解決方案,最后對JSP安全研究進行總結。
關鍵詞:JSP應用;安全問題
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2010)05-1126-02
The Discussion on Security of JSP Application
JIN Hong-xia, LV Long-hui
(Henan Vocational College of Quality Engineering,Pingdinshan 467000,China)
Abstract: As the Internet's openness and in the design for information confidentiality and security of the system to consider not complete,resulting in the network is now growing incidence of attacks and destruction,to the people's daily lives and economic activities caused great trouble.WWW service as today the most widely used Internet services,JSP site is hacked happened frequently,security issue has aroused great attention.This paper focuses on JSP application security problem,some of the major loopholes in the current JSP were analyzed,and propose a solution,the last of the JSP security research summary.
Key words: JSP application;security questions
1 JSP概述
JSP是一種動態網頁技術標準。JSP技術是在傳統的網頁HTML文件(*.htm,*.html)中插入Java程序段和JSP標記,從而形成JSP文件(*.JSP)。JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計和顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發變得迅速和容易。JSP是在服務器端執行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
JSP技術以利用現存的工具和技巧,并且能擴展到支持企業級的分布式應用中。作為采用Java技術家族的一部分,以及Java 2的一個組成部分,JSP技術能夠支持高度復雜的基于Web的應用。 由于JSP頁面的內置腳本語言是基于Java的,而且所有的JSP頁面都被編譯成為Java Servlets,所以JSP頁面具有Java技術的所有好處,包括健壯的存儲管理和安全性。作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。
JSP頁面通常被編譯成為Java Servlets,這是一個標準的Java擴展。頁面開發人員能夠訪問全部的Java應用環境,以利用Java技術的擴展性和可移植性。當JSP頁面第一次被調用時,如果它還不存在,就會被編譯成為一個Java Servlets類,并且存儲在服務器的內存中。這就使得在接下來的對該頁面的調用中,服務器會有非常快的響應。
2 JSP應用的安全問題
由于完全開放了對服務器資源的訪問,從JSP頁面轉換得到的不安全Servlet可能給服務器、服務器所在的網絡、訪問頁面的客戶機之中的任意一個或全體帶來威脅,甚至通過DDoS或蠕蟲分布式攻擊,還可能影響到整個Internet。特別是對編寫Servlet來說。驗證輸入和控制對資源的訪問是始終必須關注的問題。JSP的體系結構相當復雜,其中包含許多相互協作的子系統。這些子系統之間的交互常常是安全隱患的根源。
Cookie是服務器保存到客戶端的少量信息,服務器提取這些信息以維持會話狀態或跟蹤客戶端瀏覽器的活動。由于兩個原因,如果把敏感數據保存到Cookie,安全受到了威脅:第一,Cookie的全部內容對客戶端來說都是可見的;第二,雖然瀏覽器一般不提供偽造Cookie的能力,但沒有任何東西能夠阻止用戶用完全偽造的Cookie應答服務器。
1)中嵌入惡意標記
CERT Advisory CA-2000-02描述了客戶在請求中嵌入惡意HTML標記的問題。這個問題一般被稱為“cross site scripting”問題,這種攻擊通常包含一個由用戶提交的病態腳本,或者包含惡意的HTML標記,JSP引擎會把這些內容引入到動態生成的頁面。這種攻擊可能針對其他用戶進行,也可能針對服務器,但后者不太常見。“cross site scripting”攻擊的典型例子可以在論壇服務器上看到,因為這些服務器允許用戶在自己提交的文章中嵌入格式化標記。通常,被濫用的標記是那些能夠把代碼嵌入到頁面的標記,比如