首页 / 知识
关于安全性:如何在tomcat / java webapps中配置HttpOnly cookie?
2023-04-13 13:27:00

How do you configure HttpOnly cookies in tomcat / java webapps?阅读Jeff关于保护您的Cookies的博客文章:HttpOnly。 我想在我的Web应用程序中实现HttpOnly cookie。 您如何告诉tomcat在会话中仅使用http cookie? 从Tomcat 6.0.19和Tomcat 5.5.28开始支持httpOnly。 请参阅更改日志条目以获取错误44382。 错误44382的最后一条评论指出:"此错误已应用于5.5.x,并将包含在5.5.28及更高版本中。"但是,似乎没有发布5.5.28。 可以在conf / context.xml中为所有Web应用程序启用httpOnly功能:
我的解释是,通过将其设置在conf / server.xml中所需的Context条目上,它也适用于单个上下文(与上述方法相同)。
在您的应用中设置Cookie时,请使用
但是,在许多Web应用程序中,最重要的cookie是会话标识符,会话标识符由容器自动设置为JSESSIONID cookie。
如果仅使用此cookie,则可以编写ServletFilter以便在出局时重新设置cookie,从而将JSESSIONID强制为HttpOnly。
但请注意,这将覆盖所有cookie,并且只会在此过滤器中设置您在此处指定的内容。 如果在JSESSIONID cookie中使用其他cookie,则需要扩展此代码以在过滤器中设置所有cookie。对于多cookie来说,这不是一个很好的解决方案,但是对于仅JSESSIONID的设置来说,这可能是一个可接受的快速修复方法。 请注意,随着代码的不断发展,当您忘记此过滤器并尝试在代码中的其他位置设置另一个cookie时,会有一个令人讨厌的隐藏错误等待着您。当然,它不会被设置。 这确实是一个hack。如果您确实使用Tomcat并且可以编译它,那么请看一下Shabaz关于将HttpOnly支持修补到Tomcat中的出色建议。 请注意不要覆盖https-sessions中的"; secure" cookie标志。此标志可防止浏览器通过未加密的http连接发送cookie,从而使对合法请求的HTTP使用变得毫无意义。
如果您的Web服务器支持Serlvet 3.0规范,例如tomcat 7.0+,则可以在
如文档中所述:
请参考如何为Java Web应用程序设置httponly和会话cookie 对于会话cookie,Tomcat似乎尚不支持它。请参阅错误报告。需要添加对HTTPOnly会话cookie参数的支持。现在可以在这里找到一些涉及的变通方法,基本上可以归结为手动修补Tomcat。目前,我感到非常震惊,目前还无法找到一种简单的方法。 总结一下解决方法,它涉及下载5.5源,然后在以下位置更改源: org.apache.catalina.connector.Request.java
org.apache.catalina.connectorResponse.addCookieInternal
我在OWASP中找到
这也解决了"配置中的httponlycookies"安全问题 对于我明确设置的Cookie,我改用了Apache Shiro提供的SimpleCookie。它没有继承自javax.servlet.http.Cookie,因此要使一切正常工作还需要花费一些时间,但是它确实提供了HttpOnly属性集,并且可以与Servlet 2.5一起使用。
要在响应上设置Cookie,而不是执行 还应该注意的是,打开HttpOnly将破坏需要状态访问jvm的applet。 Applet http请求将不会使用jsessionid cookie,并且可能会分配给其他tomcat。 在Tomcat6中,您可以有条件地从HTTP侦听器类启用:
使用本课程
|
最新内容
相关内容
Python安装和配置环境变量
Python安装和配置环境变量,系统,位置,培训,环境变量,变量,分号,编辑,内容,语法,路径,一、Python的安装:在网上找一个python的安装包,我找的pythPytorch入门之配置云服务器环境
Pytorch入门之配置云服务器环境,环境,平台,流程,代码,数据,工具,平稳,网络,时间,网上,Pytorch简介Pytorch底层是Torch框架,Torch框架是一个科关于 Python 配置文件的使用方法
关于 Python 配置文件的使用方法,代码,灵活,项目,名字,培训,模块,程序,方式,内容,用户,很多项目对配置文件的使用做法是:配置文件写在一个或python的配置文件怎样写?
python的配置文件怎样写?,数据,检测,名字,培训,类型,浮点,函数,列表,存在,文件,python的配置文件这样写:一、创建配置文件在D盘建立一个配置文Python可以做桌面应用程序吗
Python可以做桌面应用程序吗,平台,系统,较大,标准,培训,界面,桌面,文档,入门,开发者,python可以做桌面应用程序!目前比较主流的几个GUI平台:1如何在Web应用程序中实现OpenID?
如何在Web应用程序中实现OpenID?,如何在Web应用程序中实现OpenID?,电子邮件地址,用户,注册,你是,How do I implement OpenID in my web如何将反射添加到C ++应用程序?
如何将反射添加到C ++应用程序?,如何将反射添加到C ++应用程序?,类型,原生,托管,的是,How can I add reflection to a C++ application开发和测试Facebook应用程序
开发和测试Facebook应用程序,开发和测试Facebook应用程序,网站,分支,并到,我在,Developing and Testing a Facebook application通常关于.net:将Perfmon分析解释为特定
关于.net:将Perfmon分析解释为特定于应用程序的观察值/数据的最佳方法是什么?,关于.net:将Perfmon分析解释为特定于应用程序的观察值/关于c#:应用程序如何在.NET或Java中
关于c#:应用程序如何在.NET或Java中使用多个内核或CPU?,关于c#:应用程序如何在.NET或Java中使用多个内核或CPU?,启动,线程,进程,内核,How c使用SQL Server配置Lucene.Net
使用SQL Server配置Lucene.Net,使用SQL Server配置Lucene.Net,文本,搜索,我会,是这样,Configure Lucene.Net with SQL Server有人使如何在ASP.NET Web应用程序上使用
如何在ASP.NET Web应用程序上使用表单身份验证最佳地处理基于角色的权限?,如何在ASP.NET Web应用程序上使用表单身份验证最佳地处理