


httpOnly 是限制js,ajax,document.cookie去访问


注意:set-cookie传递的cookie的限制条件,在cookie是不会携带的,是浏览器自己处理掉了。





在实际业务中,很多请求需要用户已登录状态。这个时候,用户首次登录,服务器接收用户的姓名和密码,然后生成一个有时效性的session,然后用set-cookie传给客户端,并设置cookie的时效等。浏览器传递给服务器cookie,服务器就可以进行session比对,正确则返回数据。

用户访问First-Party网站,然后这个网站的网页引用了Third-Party的某些图片,那么浏览器是可以下载这些图片的,但是当下载这些图片的时候,Third-Party通过set-cookie把cookie设置在了浏览器上,这样当浏览器直接访问这个Third-Party的时候,就会自动携带这个cookie。这样Third-Party就知道浏览器曾经访问过First-Part的某些网页,从而搜集用户的行为。
1.明文传输,存在安全问题
2.大小限制,超过大小可能会丢失
3.站点之间可能互相访问cookie,造成安全问题
1.使用Https
2.大小不超过4K
3.同源策略
1.什么是同源策略


2.没有同源策略会存在什么问题

用户向一个站点发起请求,很多请求可能不是用户自发的行为,比如先请求A站点,然后A站点返回一个HTML文件,然后引用B站点的一个JS文件,于是浏览器就向B站点请求一个JS文件。而这个行为不是用户自发的行为。

这样的话就相当于B站点可以返回站点A了,不用登陆就可以了。
2.站点B可以随意攻击站点A。

用户同时打开AB两个站点。B站点可以通过JS去攻击站点A,比如修改用户的输入值,造成攻击等。
4. 同源策略也防止不了的CSRF

总结:
-
Cookie是客户端保存用户信息的一种机制,存储在客户端的文件中。 -
cookie存在的问题:
1.明文传输,存在安全问题
2.大小限制,超过大小可能会丢失
3.站点之间可能互相访问cookie,造成安全问题
-
解决问题方案:
1.使用Https
2.大小不能超过4k
3.同源策略(协议、主机、端口号完全相同)

Cookie 与 Session 的区别:
-
Cookie 存在浏览器的文件里,Session 存在服务器的文件里 -
Session 是基于 Cookie 实现的,具体做法就是把 SessionID 存在 Cookie 里
共同点 :由服务端统一设置发送给客户端。
本篇文章来源于微信公众号: 小刘Java之路
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/11065.html