我熟悉上下文对象设计模式 - 在层之间传递的物体周围的轻量级上下文包装器。

如果要使用上下文对象来跟踪Taint(不受信任的用户输入)或原点层,我可以看到接收层如何相应地动态过滤,编码或验证。

例如: 用户发送“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.owash.org/index.php/category :owasp_security_analysis_of_core_j2ee_design_patterns_project

谢谢,

-ben

有帮助吗?

解决方案

我不知道应用程序层之间的taint跟踪是上下文对象模式的最佳应用。正如我所理解的那样,上下文对象是一个在单层内停留的对象,并为通过该层传递的多个消息提供服务。

在其中我可以看到用作安全机制的用途是在应用程序中创建显式安全层。想象一下,当每个用户与系统进行身份验证时,在该用户的安全层内创建安全上下文对象。安全上下文对象包含所有用户权限的列表。从任何用户进入系统的每个请求必须首先通过安全层,并根据用户的安全上下文对象进行评估。

如果允许请求,安全层将其传递给堆栈到较高的层进行处理。如果请求被拒绝,安全层向用户返回错误,其余的应用程序都是更聪明的。安全层内的集中安全问题可防止整个业务和服务层中的安全检查分散。

在这种情况下,安全上下文对象实现上下文对象模式。上下文对象是长期的,为多个用户请求提供上下文,但是请求堆栈中的较高或下层不可见。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top