目前我正在处理实施一切都是为了防范安全风险 十大项目
对于前 10 名中的第 4 名 - 不安全的直接对象引用 OWASP 指的是 OWASP应用程序安全验证标准

所以我读了所有的内容 V3, ,但我现在在实施它时遇到一些问题。
我将 JBoss-AS 7.0.1 与 Java EE6 和 JSF 2.0 一起使用

V3.4 验证会话 ID 除了在 cookie 标头中外绝不会被泄露;特别是在 URL、错误消息或日志中。这包括验证应用程序不支持会话 cookie 的 URL 重写。

我在这里读了一些关于 stackoverflow 的文章,如何避免用户第一次访问页面时在 URL 中出现 jesssion...但很多答案都是这样的:使用 URL 重写...与此相比,这意味着什么 does not support URL rewriting of session cookies

处理第一个条目上的 jsessions 的正常方法是什么?有什么保存方法可以处理吗?

V3.10:验证应用程序是否仅将应用程序框架生成的会话 ID 识别为有效。

在 JSF2.0/JavaEE 中如何做到这一点?

V3.12:验证包含经过身份验证的会话令牌/ID 的 cookie 的域和路径是否设置为该站点的适当限制值。

这是什么意思?当我用 Firebug 查看 cookie 时,我从 URL 运行 web 应用程序 http://localhost:8080/项目名称/
在 cookie 中我得到:小路:/项目名
这就是 OWASP 的意思吗 have their domain and path set to an appropriately restrictive value for that site. ?

谢谢你!

有帮助吗?

解决方案

V3.4 验证会话 ID 除了在 cookie 标头中外绝不会被泄露;特别是在 URL、错误消息或日志中。这包括验证应用程序不支持会话 cookie 的 URL 重写。

servlet 容器默认配置为支持通过 cookie 和 URL 进行会话跟踪。通过 URL 进行会话跟踪也称为“URL 重写”,其中您会看到 ;jsessionid=[session id] 出现在 URL 中。当客户端禁用 cookie 时,这将自动触发。要禁用 URL 跟踪,您需要仅通过 cookie 显式指定跟踪模式。将其添加到网络应用程序中 web.xml:

<session-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>

此外,您需要确保 JSF 代码是 无处 将会话 ID 打印到 HTML 输出 <h:outputText value="#{session.id}" />.


V3.10:验证应用程序是否仅将应用程序框架生成的会话 ID 识别为有效。

默认情况下,servlet 容器已经这样做了。只有 Tomcat 6.x(本质上 JBoss 5.x 也如此)存在安全问题,即当启用服务器范围的会话共享时,服务器将准确使用客户端在会话中提供的会话 ID。 Cookie 请求标头。Tomcat 7.x(本质上也是 JBoss 6.x/7.x)将不再这样做。另请参阅 雄猫 6.x <Connector> 文档 了解更多背景信息(查看 emptySessionPath 属性描述)。


V3.12:验证包含经过身份验证的会话令牌/ID 的 cookie 的域和路径是否设置为该站点的适当限制值。

默认情况下,servlet 容器已经这样做了。仅当您将 servlet 容器配置为使用服务器范围的会话共享(因此,在所有已部署的应用程序之间共享相同的会话)时,才会违反规则。另请参阅上一点。

请注意,大多数规则与 JSF 关系不大。它们与一般服务器和 Web 应用程序配置有关。JSF 只是一个基于组件的 MVC 框架。

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