Struts简介
一.簡介
Apache Struts 2最初被稱為WebWork 2,它是一個簡潔的、可擴(kuò)展的框架,可用于創(chuàng)建企業(yè)級Java web應(yīng)用程序。設(shè)計這個框架是為了從構(gòu)建、部署、到應(yīng)用程序維護(hù)方面來簡化整個開發(fā)周期。
二。曾經(jīng)的安全問題
在2013年6月底發(fā)布的Struts 2.3.15版本被曝出存在重要的安全漏洞?,主要問題如下:
1.可遠(yuǎn)程執(zhí)行服務(wù)器腳本代碼?
用戶可以構(gòu)造http://host/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}鏈接,command goes here可以換成是破壞腳本的路徑和參數(shù),比如fdisk -f等,造成破環(huán)系統(tǒng)無法運(yùn)行的目的。
2.重定向漏洞?
用戶可以構(gòu)造如知名網(wǎng)站淘寶的重定向連接,形如<a href="http://www.淘寶.com/item00001.html?redirect:http://黑客/getyourPassword">打折新款</a>,引導(dǎo)用戶點(diǎn)擊后進(jìn)入釣魚網(wǎng)站,在界面上讓其進(jìn)行登陸用以獲取用戶的密碼。
造成的影響
蘋果、中國移動、中國聯(lián)通、百度、騰訊、淘寶、京東、Sohu、民生銀行等大型企業(yè)的網(wǎng)站均遭毒手,運(yùn)維 工程師苦不堪言。
應(yīng)對措施
Apache團(tuán)隊緊急發(fā)布了Struts 2.3.15.1安全更新版本,可升級到此版本來解決上述問題。
?
三.Struts2 架構(gòu)
從一個高水平角度看,Struts2 是一個MVC拉動的(或MVC2)框架,Struts2 的模型-視圖-控制器模式是通過以下五個核心部分進(jìn)行實(shí)現(xiàn)的:
?
- 操作(Actions)
- 攔截器(Interceptors)
- 值棧(Value Stack)/OGNL
- 結(jié)果(Result)/結(jié)果類型
- 視圖技術(shù)
請求生命周期
通過上述圖片的描述,我們可以依照下面幾點(diǎn)解釋在Struts2 中用戶的請求生命周期:- 用戶發(fā)送一個資源需求的請求到服務(wù)器(例如:頁面)。
- 核心控制器查看請求后確定適當(dāng)?shù)膭幼鳌?/li>
- 使用驗(yàn)證、文件上傳等配置攔截器功能。
- 執(zhí)行選擇的動作來完成請求的操作。
- 另外,如果需要的話,配置的攔截器可做任何后期處理。
- 最后,由視圖顯示結(jié)果并返回給用戶。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/lukelook/p/11124626.html
總結(jié)
- 上一篇: C语言-main方法的两个参数是干什么的
- 下一篇: HTTP协议 -- TCP/IP通信传输