Java代碼審計的一些基礎知識你知道嗎
JSP生命周期
關鍵詞:Web服務器
,JSP容器
,JVM(Java虛擬機)
,servlet
詳細過程:
- 客戶端向Web服務器發(fā)起
- JSP網(wǎng)頁請求Web服務器將請求發(fā)送給JSP容器(中間件)
- JSP容器中的 JSP引擎 將 HTTP 請求轉(zhuǎn)化為Servlet
- JSP引擎再將Servlet編譯為 可執(zhí)行的class類,并將原始請求交給Servlet引擎
- Web服務器的某組件將會調(diào)用servlet引擎,然后載入并執(zhí)行servlet類。在執(zhí)行的過程中,servlet產(chǎn)生HTML格式的輸出將其內(nèi)嵌與HTTP 的response上交給Web服務器
- Web服務器以靜態(tài)的HTML網(wǎng)頁的形式將HTTP的response返回給瀏覽器
War包結(jié)構(gòu)
在web.xml中 會有此項目的框架信息,三方軟件信息,比如Spring,F(xiàn)ilter過濾器等等
JAVA 內(nèi)置對象
Java 內(nèi)置對象不用new,就可以直接獲取對象進行使用。比如 out.print()
request,response,pageContext,session,application,out,config,page,exception
pageContex 方便在 JSP 中直接寫 Java代碼
application 兩個頁面交互時共享對象
JAVA 中的危險函數(shù)
getParameter() #獲取參數(shù) getcookies() #直接獲取會話 getQueryString() #獲取SQL語句 getHeaders() #獲取HTTP請求頭 Runtime.exec() #執(zhí)行系統(tǒng)命令 logger.info() #日志輸出,可造成信息泄露的風險
危險關鍵字:password,upload,download
名詞概念
servlet:Java Servlet是運行在Web服務器或應用服務器上的程序,Servlet是一種運行在web服務器上的組件,負責連接客戶端請求和服務器數(shù)據(jù)庫(或應用層)
Tomcat 是Web應用服務器,是一個Servlet/JSP容器。
- Tomcat作為Servlet容器,負責處理客戶端的請求(執(zhí)行java程序),并把請求交給Servlet,并將Servlet的響應傳給客戶。
- Tomcat作為JSP容器,…
Servlet 和 JSP的區(qū)別
Servlet是在服務器端執(zhí)行的Java程序,由Servlet容器(其實就是服務器) 負責執(zhí)行Java程序。而JSP(Java Server Page)則是一個頁面, 由JSP容器負責執(zhí)行。
- Servlet以Java程序為主, 輸出HTML代碼時需要使用out.println函數(shù),也就是說Java中內(nèi)嵌HTML; 而JSP則以HTML頁面為主,可以直接插入Java代碼, 即HTML中內(nèi)嵌Java
- Jsp 就是在HTML中寫Java代碼,servlet 就是在java代碼中寫HTML
Tomcat 是容器,是中間件,是web應用服務器。
Servlet 是組件
JSP 是動態(tài)網(wǎng)頁技術
WAR包:一個 Java項目都是以War包的形式發(fā)布到中間件。能拿到WAR包在反編譯就能進行代碼審計
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
Struts2學習筆記(6)-簡單的數(shù)據(jù)校驗
這篇文章主要介紹Struts2中的數(shù)據(jù)校驗,通過一個簡單的例子來說明,希望能給大家做一個參考。2016-06-06關于Spring多數(shù)據(jù)源TransactionManager沖突的解決方案
這篇文章主要介紹了關于Spring多數(shù)據(jù)源TransactionManager沖突的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07java基礎詳解之數(shù)據(jù)類型知識點總結(jié)
這篇文章主要介紹了java基礎詳解之數(shù)據(jù)類型知識點總結(jié),文中有非常詳細的代碼示例,對正在學習java基礎的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04