2012-01-11 64 views
9

我是一位開發App Security的Java開發人員,我偶然發現了OWASP組織及其配套Java API ESAPI。Java安全性與ESAPI

在幾個月前我在這個網站上提出的另一個問題,有人向我指出,ESAPI是開源應用程序第二產業的主要參與者。

我現在想知道的是,我確定ESAPI與內置Java安全模型(根源於javax.security.auth)在身份驗證/授權以及其他領域重疊。 但是,如果嚴格遵守Java安全API,那麼ESAPI明確解決的app sec有哪些地方無法實現?

基本上,我想問一下,如果學習ESAPI是否有意義,如果它的所有優點/特性已經在某些現有的Java API中涵蓋了。提前致謝!

回答

7

AFAIK,ESAPI也使用java API,並添加特定於現實世界威脅的包裝。例如WAF(Web應用程序防火牆),爲了使用Java API來實現這一目標,您將結束編寫大量代碼,這些代碼由ESAPI完成,並很好地包裝爲API,因此,現在如果您想執行WAF檢查,則可以只需在幾個方法調用中實現它。

簡而言之,ESAPI就像包裝庫(內置Java API),它可以減少重新發明輪子並幫助抵禦現實世界的安全威脅。

如果您看到此ESAPI API網址,您可以輕鬆識別ESAPI開發的API如何抵禦每種可能的威脅。

+0

謝謝thinksteep!這是否意味着通過最大限度地使用ESAPI,我不需要實現或配置任何Java API特定的項目,比如SecurityManager?基本上,我問是否使用ESAPI可以覆蓋Java內置安全模型提供的所有基礎。再次感謝! – IAmYourFaja 2012-01-11 19:00:21

+0

您可能會以ESAPI配置結束。記住你不能完全避免配置。這些是任何軟件的驅動參數。 – kosa 2012-01-11 19:08:38

2

作爲一名.NET開發人員,我僅僅熟悉Java和ESAPI。然而,作爲一個專注於編寫安全代碼的狂熱偏執狂開發者(因爲我寫了一些真正可怕的東西),這是我看過的東西。

在我看來,這是絕對值得的。在沒有這些包的情況下編寫好的代碼是完全可能的,但使用這些包可以使編寫更好的代碼更加容易。

在.NET方面,我們使用了類似的東西 - 微軟模式和實踐庫。從我瞭解了Java ESAPI提供類似的目的,這就是:

它提供了一套易於使用已經使用引擎蓋下最佳實踐方法,讓你不不得不擔心這麼多。例如(這只是編寫安全應用程序所需要的一小部分),使用ADO.NET和Java,通過將用戶輸入內容嵌入到字符串(壞)中編寫SQL語句非常簡單,而且它也僅僅是因爲易於使用參數化查詢(好)。使用這些API,暴露了使用引擎蓋下良好模式的方法。讓新開發人員加快速度會更容易,並且確保在讓您編寫更少代碼的同時不會變得「馬虎」。

+0

謝謝你這麼好的回答戴夫!請在@ thinksteep的回覆下看到我的評論 - 我對你有同樣的問題!再次感謝! – IAmYourFaja 2012-01-11 19:00:45

+0

我無法專門回答該評論,但總的來說,我不相信它會涵蓋所有***的基礎。沒有框架是完美的或涵蓋一切。我認爲這是你的工具集中的一個好工具。直到你成爲學習如何運用技巧的人。這意味着要自己挖掘並學習ESAPI以找到類似的答案。基本上我回答了你最後的問題:「如果我學習ESAPI是有道理的」 – David 2012-01-11 19:09:31

3

ESAPI的一個關鍵優勢是其輸入驗證和輸出清理功能,其中Java安全類目前不支持AFAIK。 ESAPI專門針對Web應用程序安全域,這是它擅長的地方。