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