Nemo

Nemo 关注TA

路漫漫其修远兮,吾将上下而求索。

Nemo

Nemo

关注TA

路漫漫其修远兮,吾将上下而求索。

  •  普罗旺斯
  • 负责帅就完事了
  • 写了1,495,102字

该文章投稿至Nemo社区   编程综合  板块 复制链接


cookie的两个属性

发布于 2017/11/08 09:52 4,814浏览 0回复 727

介绍cookie的两个属性:

1.Cookie的Secure属性,意味着保持Cookie通信只限于加密传输,指示浏览器仅仅在通过安全/加密连接才能使用该Cookie。如果一个Web服务器从一个非安全连接里设置了一个带有secure属性的Cookie,当Cookie被发送到客户端时,它仍然能通过中间人攻击来拦截。

  2.Cookie的HttpOnly属性,指示浏览器不要在除HTTP(和HTTPS)请求之外暴露Cookie。一个有HttpOnly属性的Cookie,不能通过非HTTP方式来访问,例如通过调用JavaScript(例如,引用document.cookie),因此,不可能通过跨域脚本(一种非常普通的攻击技术)来偷走这种Cookie。尤其是Facebook和Google正在广泛地使用HttpOnly属性。

  事发原因,某台测试机器上突然发现登陆后报后台错误,进一步发现浏览器请求后端服务时header不会带上cookie参数,   然后发现登陆时返回的响应写入的cookie中带有两个属性,一个是Security=secure,一个是HttpOnly,

测试服务中我们使用的是http协议,而非https,由于secure属性的存在,导致浏览器在与服务器通信时不会使用该cookie. 

后面把tomcat/conf/server.xml中有一个secure="true"的配置去掉,正是这个配置影响了cookie的这个属性。

因为我们使用了如下代码去判断当前协议是否https:

  1. if(req.isSecure()){
  2. cookie.setSecure(true);
  3. }
点赞(0)
点了个评