一、属性说明:
1 secure属性
当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。
2 HttpOnly属性
如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。
对于以上两个属性,
首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,HttpOnly属性的目的是防止程序获取cookie后进行攻击。
其 次,GlassFish2.x支持的是servlet2.5,而servlet2.5不支持Session Cookie的"HttpOnly"属性。不过使用Filter做一定的处理可以简单的实现HttpOnly属性。GlashFish3.0(支持 servlet3.0)默认开启Session Cookie的HttpOnly属性。
也就是说两个属性,并不能解决cookie在本机出现的信息泄漏的问题(FireFox的插件FireBug能直接看到cookie的相关信息)。
二、实例
项目架构环境:jsp+servlet+applet
1 添加HttpOnly和secure属性
根 据之前的说明,GlassFish2不支持Session Cookie的HttpOnly属性,以及secure属性也需要自己进行设置,所以最后的处理方法是:在工程各添加一个Filter,对请求的入口页面 (或者是请求后跳转到的第一个客户可见的页面,一般是登陆页面),重新设置客户端的session属性。 (response.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + ";Path=/ccrl;secure;HttpOnly"); 可以看出,这句话的前提是这里只能使用Session Cookie这唯一一个Cookie,不能使用其他Cookie在浏览器和服务器之间交互,否则会清除其他Cookie信息,如果一定要支持其他的 Cookie,可以在Header下功夫)
2 修改程序中不兼容的代码(ccrl113)
(1)现象:在Session Cookie被设置为HttpOnly属性后,因为程序再也取不到客户端Session Cookie的内容,导致Applet发送URLConnection请求到服务器时,无法从浏览器中读取到sessionID,致使一些依赖于session中内容的URLConnection无法返回正确的结果。
解决:在启动Applet时先将SessionID信息传入到applet中,然后在URLConnection发送请求时,重新设置Session Cookie信息。urlCon.setRequestProperty("Cookie", "JSESSIONID=" + ssid + ";Path=/ccrl113;secure;HttpOnly");
(2)现象:在Dynamic Analysis启动时,在jsp页面中存在使用URLConnection访问servlet的情况,可是在HTTPS的情况下,不允许jsp使用URLConnection访问servlet(从现象推论)。
解决:将servlet中的内容重构抽取成工具类或是实体类供jsp页面使用。因为jsp页面和servlet都是服务器端,所以完全可以避免jsp页面通过URLConnection访问servlet。
(3)JBOSS的设置
找到<myJBossServerInstancePath>/deploy/jbossweb.sar/context.xml
<Context cookies="true" crossContext="true"> <SessionCookie secure="true" httpOnly="true" /> ...... </Context>
相关推荐
### Cookie设置httpOnly和secure属性实现及问题 #### 一、引言 在现代Web开发中,保护用户的隐私和数据安全至关重要。其中一种常见的做法就是通过设置Cookie的`httpOnly`和`secure`属性来增强安全性。这两个属性...
首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,HttpOnly属性的目的是防止程序获取cookie后进行攻击。 其次,GlassFish2.x支持的是servlet2.5,而servlet2.5不支持Session Cookie的"HttpOnly"属性...
Filter会在请求处理之前介入,可以重新设置Session Cookie,确保其包含`secure`和`HttpOnly`属性。需要注意,设置这些属性可能会影响到其他非Session Cookie的正常工作,需要谨慎处理。 2. 当设置`HttpOnly`后,...
Cookie 的 HttpOnly 设置详解 Cookie 是一种小型文本文件,由 Web 服务器保存在用户浏览器(客户端)上,用来存储用户信息。Cookie 通常用于辨别用户身份、进行 session 跟踪。Cookie 可以包含一些不敏感的信息,如...
使用`setcookie`或`setrawcookie`函数设置带有HTTPOnly属性的Cookie: ```php setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); ``` 4....
`HttpOnly`是服务器在设置cookie时可以添加的一个属性,其主要目的是防止客户端脚本(如JavaScript)访问或修改该cookie。这是因为很多跨站脚本攻击(XSS)都试图通过JavaScript获取或篡改用户的cookie信息,从而...
Cookie是Web应用中用于存储用户状态的一种机制,它在客户端与服务器之间传递信息,常见的应用场景包括用户登录状态的保持、个性化...同时,结合HTTPOnly属性,可以进一步防止JavaScript注入攻击,增强Cookie的安全性。
例如,在某些 Web 应用程序中,如果 Cookie 中的路径属性设置为当前项目的路径,那么攻击者可以通过分析 Cookie 中的路径属性来获取项目路径,从而实施攻击。 解决思路 解决 Cookie 路径属性暴露问题有两种思路...
6. 安全性(Secure):如果设置此属性,Cookie只会在HTTPS安全连接下发送。 7. 只读(HttpOnly):如果设置此属性,Cookie将不能通过JavaScript访问,防止XSS攻击。 三、Cookie的操作 1. 创建Cookie:服务器通过Set...
Cookie主要包含以下属性: 1. Name:Cookie的唯一标识。 2. Value:与Name对应的值。 3. Domain:指定Cookie作用的域名,只有向该域名发送请求时才会携带此Cookie。 4. Path:限制Cookie在指定路径下生效。 5. ...
可以通过设置HttpOnly属性防止JavaScript访问Cookie,以降低XSS攻击风险;设置Secure属性确保Cookie只在HTTPS连接中传输,增加安全性。 七、Cookie管理最佳实践 1. 限制Cookie大小:每个Cookie的大小不应超过4KB,...
- HTTPOnly属性防止JavaScript通过`document.cookie`访问Cookie,减少XSS攻击的风险。 - Secure属性确保Cookie只能在HTTPS连接下传输,增强安全性。 压缩包内的“Test_dl”可能是一个示例代码或测试项目,包含了...
2. **设置WebView Cookie Manager**:Android 4.0及以上版本提供了`CookieManager`类,用于管理WebView的cookie。首先,你需要初始化`CookieManager`,启用第三方cookie支持,并清空旧的cookie存储。 ```java ...
- **使用HttpOnly标志**:设置`httpOnly`属性可以防止JavaScript通过`document.cookie`访问Cookie,从而降低XSS攻击的风险。 - **设置Secure标志**:当设置`secure`属性时,Cookie仅通过HTTPS协议传输,这有助于防止...
2. **HttpOnly**:设置Cookie的HttpOnly属性,阻止JavaScript访问Cookie,减少XSS攻击的风险。 3. **Secure Flag**:为Cookie添加Secure标志,确保只有在HTTPS连接下才会发送Cookie,防止明文传输。 4. **SameSite...
2. **使用HttpOnly**:设置Cookie的HttpOnly属性,阻止JavaScript访问,减少XSS攻击的风险。 3. **Secure标志**:在HTTPS连接上设置Cookie的Secure标志,确保Cookie只通过加密通道传输。 4. **限制Cookie的生命周期*...
3. **HTTPOnly**:启用HTTPOnly属性可防止JavaScript通过`document.cookie`访问Cookie,减少XSS攻击风险。 4. **Secure与SameSite**:在安全的连接(HTTPS)上设置Cookie,并使用`SameSite`属性来限制跨站请求。 ...
- HttpOnly属性:启用HttpOnly可以防止JavaScript代码访问Cookie,减少跨站脚本攻击(XSS)的风险。 - Max-Age和Expires:控制Cookie的有效期,避免长期存储在客户端,保护用户隐私。 总结来说,Cookie是Web应用中...
- 如果将HttpOnly属性设置为true,则Cookie只能通过HTTP协议访问,不能被JavaScript脚本读取。 - 示例代码: ```csharp cookie.HttpOnly = true; // 防止XSS攻击 ``` #### 四、读取Cookie 1. **获取特定名称的...
- **HttpOnly**:设置Cookie的HttpOnly属性可以防止JavaScript脚本访问Cookie,减少XSS攻击风险。 - **Secure**:在HTTPS连接上设置Secure属性,确保Cookie仅通过安全通道传输。 - **限制大小和数量**:避免创建...