從JavaWeb危險字元過濾淺談ESAPI使用

來源:互聯網
上載者:User

      事先聲明:只是淺談,我也之用了這個組件的一點點。

      又到某重要XX時期(但願此文給面臨此需求的同仁有所協助),某Web應用第一次面臨安全強化要求,AppScan的安全性測試報告還是很清爽的,內容全面,提示建議到位,而且是中午哦,當然有的中文明顯狗屁不通。

      之前此應用的後端架構相對比較穩固,所以出的重要問題主要出在靠近前端方向的問題,一些類似輸出過濾這樣的動作做的不到位,需要引入比較成熟的代碼專門幹這些活,翻了一下吳瀚清的同學《白帽子談Web安全》推薦了OWASP的ESAPI,這個東西全面叫Enterprise Security API,官網地址:https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API 到其首頁上看看,好像提供了不少語言的分支版本,我就下了個JavaEE的版本,這個玩意功能很強大,直接來官方文檔的特性列表吧:

The features in this release of ESAPI for Java EE include:ESAPI Core componentsESAPI locator and interface classes.ESAPI security control reference implementations for the following security controls:AuthenticationIdentityAccess ControlInput ValidationOutput EscapingEncryptionRandom NumbersException HandlingLoggingIntrusion DetectionSecurity ConfigurationESAPI Web Application Firewall (WAF) component    Fixes for specific issues. For more information, see “Enhancements and Resolved Issues”.

      這個組件使用不是直接引入jar就ok,初始化時要讀兩個設定檔ESAPI.properties和validation.properties,這兩個設定檔不一定能在安裝指南所示的目錄中找到,不過你解壓搜尋一下dist目錄,應該是可以找到的,把這兩個檔案扔進src目錄中就Ok了。

      再有什麼可說的,來代碼,我就用了一下DefaultEncoder中的一些EncodeXXX功能,基本上都是getInstance()單例方式一句搞定,也沒啥好說的,大家看看文檔誰都會。那寫這Blog幹什嗎?主要想說現在中文網上搜到的關於JavaWeb輸出過濾大都是一些人(其實就一個版本)自己寫的代碼,不是說他的代碼不好,引入相對成熟經過一定使用檢驗的組件級代碼總是相對更好一點,再怎麼說,這些東西都是安全相關的東東,不可小視。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.