Apache Struts

維基百科,自由的百科全書
跳至導覽 跳至搜尋
Apache Struts 2
Apache Struts Logo
開發者Apache軟件基金會
首次發布2006年10月10日 (2006-10-10)
當前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    源代碼庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    編程語言Java
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      操作系統跨平台
      平台跨平台JVM
      許可協議Apache許可證 2.0
      網站struts.apache.org

      Apache Struts 2是一個用於開發Java EE網路應用程式開放原始碼網頁應用程式架構。它利用並延伸了Java Servlet API,鼓勵開發者採用MVC架構。

      緣起於Apache StrutsWebWork英語WebWork框架,旨在提供相對於Struts框架的增強和改進,同時保留與Struts框架類似的結構。2005年12月,WebWork宣布WebWork 2.2以Apache Struts 2的名義合併至Struts。2007年2月第一個全發布(full release)版本釋出。[1]

      開發目標[編輯]

      Struts1設計的第一目標就是使MVC模式應用於web程序設計。在過去10年,Struts在更好的web應用方面所做的工作是值得肯定的。在某些方面,Struts社區注意到這一框架的局限性,所以這個活躍的社區通過對MVC運行模式的重新理解並同時引入一些新的建築學方面的設計理念後,新的Struts2框架結構更清晰,使用更靈活方便。

      這一新的結構包含應用邏輯的橫切面攔截器,基於注釋的配置以減少和去除XML形式的配置文件,功能強大的表達式語言,支持可更改、可重用UI組件的基於微MVC的標籤庫。Struts2有兩方面的技術優勢,一是所有的Struts2應用程序都是基於client/server HTTP交換協議,The Java Servlet API揭示了Java Servlet只是Java API的一個很小子集,這樣我們可以在業務邏輯部分使用功能強大的Java語言進行程序設計。

      Struts 2提供了對MVC的一個清晰的實現,這一實現包含了很多參與對所以請求進行處理的關鍵組件,如:攔截器、OGNL表達式語言、堆棧。

      漏洞處理手法[編輯]

      Struts2開發組常被指漏洞修復手法不妥,要麼修復後仍有可利用,要麼無法修復並長期閒置。

      其中包括一個由標記為S2-003的漏洞報告引發了一連串的遠程執行問題,官方多次修復仍沒能完全解決,甚至是報告提交者多次提交其繞過方案警醒開發組注意。[2]

      2013年7月發布了2.3.15.1發布版,但在修復事項中公開了一段遠程執行漏洞的示例代碼,被黑客圈內利用,導致了中國大陸大量使用Struts2的網站被入侵。[3]

      參見[編輯]

      參考文獻[編輯]

      1. ^ About Apache Struts 2. [2014-04-11]. (原始內容存檔於2014-01-14). 
      2. ^ Struts2漏洞频出 祸根是Apache底层代码不严谨_中小企业_比特网. [2014-08-18]. (原始內容存檔於2014-08-19). 
      3. ^ struts2高危漏洞或引发互联网安全灾难-IT168 安全专区. [2014-08-18]. (原始內容存檔於2014-08-19). 

      外部連結[編輯]