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标签

	
		120
		
			false
			false
		
	

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了。

 

 

你可能感兴趣的:(java后端-技术)