我熟悉上下文對象設計模式的使用 - 這是一種圍繞層之間傳遞的對象的輕量級上下文封裝。如何使用「上下文對象」設計模式來增強安全性?
如果要使用上下文對象來跟蹤污點(不可信用戶輸入)或原始層,我可以看到接收層如何動態地過濾,編碼或驗證相應。
例如: 用戶發送最終將作爲文件存儲在系統中的「HTTP/HTML」上下文數據。文件保存方法可以檢測上下文並解碼HTML實體,爲文件上傳分配隨機標識符,並將用戶操作和文件名關聯到數據庫中。
我的問題是:如何比默認應用所有過濾,編碼和驗證更聰明?在知道原始語境的情況下,哪些情況存在可以提高安全性而不僅僅是良好的輸入驗證/編碼?
我正在使用Java/J2EE/Struts,但這可以推廣到其他語言和框架。
參考文獻:
http://www.corej2eepatterns.com/Patterns2ndEd/ContextObject.htm
http://www.cs.wustl.edu/~schmidt/PDF/Context-Object-Pattern.pdf
http://www.owasp.org/index.php/Category:OWASP_Security_Analysis_of_Core_J2EE_Design_Patterns_Project
隨着我的感謝,
-Ben
您可以直接在這裏頂撞OWASP指導: http://www.owasp.org/index.php/Category:OWASP_Security_Analysis_of_Core_J2EE_Design_Patterns_Project/PresentationTier#tab=Context_Object 不過,你完全回答我的問題: 「存在哪些情況下,瞭解起源上下文可以提高安全性,而不僅僅是良好的輸入驗證/編碼? – 2010-07-21 17:11:16