Jboss httpOnly cookie

Jboss httpOnly cookie,jboss,security,httponly,Jboss,Security,Httponly,我对jboss 5中部署的应用程序(内置struts和hibernate框架)进行了web扫描,该应用程序报告“设置cookie不使用HTTPOnly关键字。web应用程序不使用HTTPOnly cookies”。这是什么意思。我找了一些帖子,只在我的jboss/deploy/jbossweb.sar/context.xmlas中添加了一行 <SessionCookie secure="true" useHttpOnly="true" > 设置后,运行应用程序时出现错误。是否缺

我对jboss 5中部署的应用程序(内置struts和hibernate框架)进行了web扫描,该应用程序报告“
设置cookie不使用HTTPOnly关键字。web应用程序不使用HTTPOnly cookies
”。这是什么意思。我找了一些帖子,只在我的j
boss/deploy/jbossweb.sar/context.xml
as中添加了一行

<SessionCookie secure="true" useHttpOnly="true" >

设置后,运行应用程序时出现错误。
是否缺少任何配置?

请尝试以下操作:

<SessionCookie secure="true" httpOnly="true" />

这是什么意思

http响应头中的
HttpOnly
标志向浏览器指示不允许客户端访问
JSESSION\u ID
或其他会话cookie类型标识符。这是为了防止通过客户端脚本恶意访问会话令牌(或其他涉及客户端会话劫持的攻击)。目前,几乎所有主流浏览器都支持此标志(有关支持的浏览器,请参阅),但在不支持此标志的浏览器中,此标志被忽略。查看更多关于此的信息,请访问

tomcat及其分支(包括Jboss)的设置类似,在上下文文件中包括以下内容:

<session-config>
    <cookie-config>
        <http-only>true</http-only>
    </cookie-config>
</session-config>

真的



除了在我的jboss中配置之外,应用程序中是否需要任何配置?@bablu,必需?不需要。但是您可以配置一个servlet过滤器,在应用程序的每个http响应中插入这个头,作为一种故障保护,而不是作为一种必要性。在servlet过滤器代码中,我必须添加字符串sessionid=request.getSession().getId();response.setHeader(“SET-COOKIE”、“JSESSIONID=“+sessionid+”HttpOnly”);getSession(false)始终返回null。我不知道为什么,但在添加了这两行之后,应用程序成功运行了。所以我的疑问是,这两行绝对是必需的。这是我从网站上得到的两条线。这里提到,对于servlet版本<3(在我的例子中是2.4),这两行代码是necessary@bablu对不起,我以为你在吉普站台上。没错,对于早期的(J2EE)容器,需要以编程方式重写头。Servlet3.0中引入了对httponly的本机支持。更新我的答案相应退出!首先,有一些方法可以绕过它(例如,带有调试过的http连接的java小程序;)。其次,如果您将该过滤器应用于每个请求“/*”,您的小程序将无法工作,因为在类加载时在响应中设置了cookie头。在日志中,我们可以找到有关解析xml的错误。这是一个简单的缺少关闭标签的问题
 <SessionCookie secure="true" httpOnly="true" />