17 Cookie 的 HttpOnly 和 Secure 属性作用

Cookie 的 HttpOnly 和 Secure 属性作用 (转载)

今天和总监、同事又讨论起关于Session共享的解决方案问题,讨论到因为Tomcat自带的Session机制在集群时难以做到真正的集群。因为使用Tomcat自带的Session机制,难以做到在集群中节点共享,一般是通过Nginx反向代理使用Hash、固定IP等解决方案,并不能避免单节点崩溃时不能继续提供服务的问题。虽然这种可以解决压力的问题,但是当一直为某IP或通过Hash来分配服务的某台服务器挂了,则它负责服务的客户就都访问不了了(Session失效,只能重新调度分配到其他服务器,这时要重新生成会话)。讨论到的可用的解决方案是Cookie + Redis,然后又讨论了Cookie的安全性问题。然后同事问了下HttpOnly这个在浏览器里打勾的作用,然后自己按以前了解到的资料来回答了一下,大概是说:不能通过Javascript来修改带有HttpOnly属性的Cookie,只能通过服务器来修改。但是看到总监却可以通过JS来修改带有HttpOnly属性的Cookie,这让我产生了怀疑自己的正确性。

document.cookie

不过还好,事后向总监确认了一下,原来他是通过删除旧的带有HttpOnly属性的Cookie,然后才用JS添加一个同名同值没有HttpOnly属性来测试。所以,我之前说的大概是对的,但是不够系统,所以再次查了下资料来系统整理一下,与君分享。

下面两个属性都属于Cookie安全方面考虑的。这要视浏览器或服务端有没有支持。

Secure

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

HttpOnly

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

XSS是跨站脚本攻击的缩写,是一种网站应用程序的安全漏洞攻击,是代码注入的一种。 通常是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

防范

记住一句至理名言——“所有用户输入都是不可信的。”(注意: 攻击代码不一定在中)

链接:http://www.imooc.com/article/13553?block_id=tuijian_wz

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 注:本文转载自前端大全 背景 在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称...
    楠小忎阅读 3,931评论 0 0
  • 1)cookie是一个很小的文本文件,是浏览器储存在用户的机器上的。Cookie是纯文本,没有可执行代码。储存一些...
    微晓诶阅读 3,308评论 0 0
  • 今天我们来全面了解一下Cookie(小饼干)相关的知识!篇幅有点长,在学习Python的伙伴或者有兴趣的你,可以耐...
    EchoPython阅读 1,639评论 0 0
  • 有人说生命短暂,就像流星划过天空,转瞬即逝,那些爱的人还有更长的爱没有诉说,有些思念还没有邮寄,有些理想过早的背扼...
    我是王小楠阅读 1,508评论 0 1
  • 朦胧的街灯,静静躺在小雨中,往事又略过我心头,犹记离别的时候,紧紧握住你的双手
    戒清欢阅读 1,508评论 0 1

友情链接更多精彩内容