http-only的作用

httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。
    我们登陆某银行网站后,服务器会写一些cookie到我们的浏览器,当下次再访问其他页面时,由于浏览器回自动传递cookie,这样就实现了一次登陆就可以看到所有需要登陆后才能看到的内容。
也就是说,实质上,所有的登陆状态这些都是建立在cookie上的!假设我们登陆后的cookie被人获得,那就会有暴露个人信息的危险!
当然,想想,其他人怎么可以获得客户的cookie?那必然是有不怀好意的人的程序在浏览器里运行!如果是现在满天飞的流氓软件,那没有办法,httponly也不是用来解决这种情况的,它是用来解决浏览器里js访问cookie问题



php中设置httponly 


session.cookie_httponly = 1(or true)


Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
; http://php.net/session.cookie-httponly
session.cookie_httponly =


说明:http://php.net/manual/zh/session.configuration.php#ini.session.cookie-secure
session.cookie_httponly boolean
Marks the cookie as accessible only through the HTTP protocol. This means that the cookie won't be accessible by scripting languages, such as JavaScript. This setting can effectively help to reduce identity theft through XSS attacks (although it is not supported by all browsers).




Cookie操作函数setcookie函数和setrawcookie函数也专门添加了第7个参数来做为HttpOnly的选项,开启方法为: 
 ------------------------------------------------------- 
 setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 
 setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
 ------------------------------------------------------- 
在thinkphp中可以通过配置,惯例文件 convention.php.中 
 'COOKIE_HTTPONLY'       =>  '',      // Cookie httponly设置









在Tomcat 8中配置Cookie的HttpOnly属性,可以通过修改`context.xml`和`web.xml`文件来实现。以下是具体的配置步骤: ### 修改 `context.xml` 文件 在`conf`目录下的`context.xml`文件中,添加或修改`<Context>`标签,设置`useHttpOnly`属性为`true`: ```xml <Context useHttpOnly="true"> <!-- 其他配置 --> </Context> ``` 此配置将确保Tomcat在创建会话Cookie时自动添加HttpOnly属性。 ### 修改 `web.xml` 文件 在`conf`目录下的`web.xml`文件中,配置`<session-config>`部分,添加`<cookie-config>`并设置`<http-only>`为`true`: ```xml <session-config> <session-timeout>30</session-timeout> <cookie-config> <http-only>true</http-only> </cookie-config> </session-config> ``` 此配置将确保会话Cookie在创建时包含HttpOnly属性。 ### 验证配置 启动Tomcat后,可以通过抓包工具(如Wireshark或浏览器的开发者工具)检查HTTP响应头中的`Set-Cookie`字段,确认是否包含`HttpOnly`属性。例如: ``` Set-Cookie: JSESSIONID=717C91AF20E245B100EEFBF5EDDB29C3; Path=/monitor; HttpOnly ``` 通过上述配置,可以有效防止跨站脚本攻击(XSS),保护用户的会话信息。 ### 示例代码 如果需要手动设置Cookie的HttpOnly属性,可以在Java代码中直接添加: ```java HttpServletResponse response2 = (HttpServletResponse) response; response2.addHeader("Set-Cookie", "name=value; HttpOnly"); ``` ### 相关问题 1. Tomcat 8中如何配置Secure属性以增强Cookie的安全性? 2. 如何验证Tomcat 8中Cookie的HttpOnly属性是否生效? 3. Tomcat 8的`context.xml`和`web.xml`配置文件的作用分别是什么? 4. HttpOnly属性对防止跨站脚本攻击(XSS)有哪些具体作用? 5. 在Tomcat 8中,除了配置HttpOnly属性,还有哪些方法可以增强会话Cookie的安全性?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值