`

Tomcat为Cookie设置HttpOnly属性

 
阅读更多

A:Tomcat 中维持Java webapp的Http会话是以Cookie形式实现的存储在服务端用户状态信息的;

B:服务端可以自定义建立Cookie对象及属性传递到客户端;

服务端建立的Cookie如果没有设置HttpOnly属性,则在客户端可以用js读取Cookie中的内容(客户端脚本可以读取Session Cookie内容进行诸如CSRF/XSS恶意http攻击);

 

方法:

为HttpSession安全性考虑,防止客户端脚本读取Session Cookie内容进行诸如CSRF/XSS恶意http攻击,可在tomcat6的conf/context.xml配置文件中配置:

<Context useHttpOnly="true">

为自定义Cookie及属性添加HttpOnly属性,在Set-Cookie头部信息设置时可以添加“HttpOnly”

 

验证:

1,抓包验证任意http响应的内容,确实任意客户端请求的回应包含Set-Cookie: JSESSIONID=717C91AF20E245B100EEFBF5EDDB29C3; Path=/monitor; HttpOnly

GET /monitor/ HTTP/1.1

Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*

Accept-Language: zh-cn

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322)

Accept-Encoding: gzip, deflate

Host: 192.168.245.1

Connection: Keep-Alive




HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Set-Cookie: JSESSIONID=717C91AF20E245B100EEFBF5EDDB29C3; Path=/monitor; HttpOnly

Set-Cookie: lang=zh; HttpOnly

Content-Type: text/html;charset=UTF-8

Content-Length: 2518

Date: Wed, 20 Jul 2016 08:14:42 GMT

2,在浏览器端调试js脚本,确实使用document.cookie读取在服务端设置的Cookie对象时,读取内容为空:

document.cookie ""

 

分享到:
评论

相关推荐

    cookie设置httpOnly和secure属性实现及问题

    ### Cookie设置httpOnly和secure属性实现及问题 #### 一、引言 在现代Web开发中,保护用户的隐私和数据安全至关重要。其中一种常见的做法就是通过设置Cookie的`httpOnly`和`secure`属性来增强安全性。这两个属性...

    Session Cookie的HttpOnly和secure属性

    如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。 对于以上两个属性, 首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,...

    Set-Cookie: JSESSIONID=8AB51DC4244907FD9EBB063C7FD73CBA; Path=/; HttpOnly

    例如,在某些 Web 应用程序中,如果 Cookie 中的路径属性设置为当前项目的路径,那么攻击者可以通过分析 Cookie 中的路径属性来获取项目路径,从而实施攻击。 解决思路 解决 Cookie 路径属性暴露问题有两种思路...

    Linux下安装与配置基于nginx的tomcat负载均衡和集群(通过cookie分发请求)

    `会根据名为`session`的cookie值来确定请求应发送到哪个服务器,从而实现会话粘滞,保证同一用户的请求被连续发送到同一台Tomcat服务器。 **安装和配置Tomcat** 1. 下载Tomcat并解压到指定目录。 2. 修改`conf/...

    tomcat集群与会话共享

    它可以配置为将请求智能地分发到集群中的各个Tomcat实例,实现会话持久化(粘性会话)或者根据特定算法(如轮询、最少连接数等)进行负载均衡。 - **配置Nginx**:在Nginx配置文件中,可以定义一个upstream块来指定...

    reids+tomcat8.5+tengine实现session相关jar包.zip

    - 配置Tomcat的`context.xml`文件,设置session的存储策略为Redis,并提供Redis服务器的连接参数。 - 对于Tengine,配置负载均衡规则,启用基于cookie的Session黏滞策略,确保相同Session的请求始终发送到同一台...

    Windows7 + Nginx + Memcached + Tomcat 集群 session 共享

    上述web.xml配置中,`memcachedNodes`指定了Memcached服务器的地址,`sessionBackupAsync`控制是否异步备份,`sessionMode`设置为"sticky"表示粘滞会话,使得同一用户的请求总是被转发到同一台服务器,以减少session...

    ServletCookie DEMO

    4. **删除Cookie**:删除Cookie是通过创建一个具有相同名称但值为空且过期时间设为过去的Cookie完成的。这样,浏览器在下次访问时会发现该Cookie已过期,从而将其移除。 5. **安全性和隐私**:由于Cookie可以被第三...

    Nginx + Tomcat +session共享.docx

    同时,Tomcat 需要在 `server.xml` 文件中的 `Context` 元素内启用 `sessionCookiePath` 和 `useHttpOnly` 属性: ```xml name="JSESSIONID" path="/" httpOnly="true"/&gt; ``` 这样,Nginx 将会根据 ...

    Ngxin+双tomcat负载+mem做session共享

    3. 修改`conf.d/xiaoxin.conf`,设置会话共享: ```nginx location /session { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-...

    bboss会话共享培训文档

    安全性方面,bboss会话共享通过在客户端基于cookie机制存储sessionid,并设置cookie的HttpOnly属性来防止XSS攻击窃取sessionid,通过设置Secure属性并在HTTPS环境下传输来防止sessionid被窃取。同时,还提供会话信息...

    SSO单点登录

    - **安全性考虑**:为了提高安全性,可以设置cookie的HttpOnly标志,防止JavaScript脚本访问cookie内容。 2. **Broker-based(基于中介)**:这是一种更通用的方法,其中SSO系统充当一个中介或认证服务器,负责...

    java选课管理系统

    可以使用预编译的SQL语句、过滤输入数据、设置HttpOnly Cookie等方式提高安全性。 6. **权限控制** 不同角色(学生、教师、管理员)有不同的权限,系统应实现角色-权限(RBAC)模型,确保用户只能访问他们被授权的...

    JSP-Servlet-Ajax考题共享

    - Cookie是客户端存储数据的技术,通过HttpOnly和Max-Age属性可控制其保存时间。 - 会话ID用于识别特定的客户端会话,存储在Cookie或URL参数中。 - 在JSP中实现拒绝访问可通过设置访问控制,如`...

    [新闻文章]明日JSP新闻系统_jspnews.zip

    可以使用预编译的JSP防止SQL注入,使用HTTPOnly Cookie防止Cookie劫持,对用户输入进行过滤或转义以防止XSS攻击。 8. **性能优化**: 为了提高系统性能,可以采用缓存策略,如使用Ehcache缓存常用数据;进行数据库...

    基于jsp和Servlet开发的新闻发布系统

    开发者需要对输入进行验证,使用预编译的SQL语句(PreparedStatement),设置HttpOnly Cookie等措施来保护系统安全。 **7. 模板引擎** 为了提高代码可读性和可维护性,有时会在JSP之上使用模板引擎(如FreeMarker...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    -- 配置存储rememberMe Cookie的domain为 一级域名 --&gt; &lt;property name="maxAge" value="2592000"/&gt;&lt;!-- 30天时间,记住我30天 --&gt; 记住我登录的信息配置。和上面配置是一样的道理,可以在相同 一级...

    jsp在线客服源码

    使用HttpOnly cookie防止JavaScript访问,验证请求来源以避免CSRF。 2. 性能优化:合理设置缓存策略,减少不必要的数据库查询;使用CDN(内容分发网络)加速静态资源加载;通过GZIP压缩减少网络传输大小。 五、...

    基于SSM的校园二手交易平台的设计与实现.rar

    SSM框架提供了多种安全措施,例如使用预编译的SQL防止SQL注入,使用HttpOnly cookie来防止XSS攻击,还可以结合Spring Security或Apache Shiro进行更深度的身份验证和授权。 6. **用户体验**:为了提升用户使用体验...

Global site tag (gtag.js) - Google Analytics