cookie中存储的值设置httponly和secure

最近公司的项目有要求将sessionid做成httponly和secure可配置的设定。

首先什么是httponly和secure呢?是cookie中的两个属性

当设置了httponly为true时,通过js脚本是无法获取到cookie的信息的。防止XSS攻击。

secure为true时,服务只能通过https来进行cookie的传递,使用http服务无法提供服务。

设置sessionid, 在浏览器可以通过F12查看当前服务页面cookie信息,可以看到jsessionid:

由图可以看到最后的几个指标中有HTTP,代表了httponly属性,当设置了httponly时,就会有对勾出现。还有Secure的值,显示当前是否配置了Secure的属性要求。

配置jsessionid的httponly,secure

这个可以直接配置项目中的web.xml进行配置,配置如下,添加session-config标签

	<session-config>
		<session-timeout>120</session-timeout>
		<cookie-config>
			<http-only>false</http-only>
			<secure>false</secure>
		</cookie-config>
	</session-config>

jsessionid的配置主要跟tomcat有关,tomcat6httponly默认是关闭的,tomcat7默认是启用的,需要配置content.xml来解决了;

当然其他放进cookie中的信息也可以配置这两个属性值

项目一:cookie是使用了spring框架的cookie组件org.springframework.web.util.CookieGenerator,集成了CookieGenerator类。由于是老项目,通过xml方式可以注入参数信息到bean中。

CookieGenerator提供了isCookieHttpOnly方法和isCookieSecure方法,做是否要设置这两个值得判断方法,当然默认值都是false,需要注入才可以,通过xml引用properties中得配置信息,即可实现在properties中控制这两个值的使用。

项目二:cookie直接用的javax.servlet.http.Cookie。这个可以取properties中的设置的两个属性的开关,判断是否需要设置,直接set这两个属性就ok了。

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值