Java三十七篇:cookie和session


1.cookie 是什么

Java三十七篇:cookie和session
img
Java三十七篇:cookie和session
img
Java三十七篇:cookie和session
img

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

Java三十七篇:cookie和session
img
Java三十七篇:cookie和session
img

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

Java三十七篇:cookie和session
img
Java三十七篇:cookie和session
img

2.使用cookie的限制

Java三十七篇:cookie和session
img
Java三十七篇:cookie和session
img

3.session 是如何利用cookie机制实现用户登录验证的

Java三十七篇:cookie和session
img

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

4.第三方cookie

Java三十七篇:cookie和session
img

用户访问First-Party网站,然后这个网站的网页引用了Third-Party的某些图片,那么浏览器是可以下载这些图片的,但是当下载这些图片的时候,Third-Party通过set-cookie把cookie设置在了浏览器上,这样当浏览器直接访问这个Third-Party的时候,就会自动携带这个cookie。这样Third-Party就知道浏览器曾经访问过First-Part的某些网页,从而搜集用户的行为。

5.cookie存在的安全问题

1.明文传输,存在安全问题

2.大小限制,超过大小可能会丢失

3.站点之间可能互相访问cookie,造成安全问题

1.使用Https

2.大小不超过4K

3.同源策略

1.什么是同源策略

Java三十七篇:cookie和session
img
Java三十七篇:cookie和session
img

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

1.第一个问题:只能保证cookie是来自同一个浏览器,不能保证是用户自愿发起的。

Java三十七篇:cookie和session
img

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

Java三十七篇:cookie和session
img

这样的话就相当于B站点可以返回站点A了,不用登陆就可以了。

2.站点B可以随意攻击站点A。

Java三十七篇:cookie和session
img

用户同时打开AB两个站点。B站点可以通过JS去攻击站点A,比如修改用户的输入值,造成攻击等。

4. 同源策略也防止不了的CSRF

Java三十七篇:cookie和session
img

总结:

  • Cookie是客户端保存用户信息的一种机制,存储在客户端的文件中。
  • cookie存在的问题:

1.明文传输,存在安全问题

2.大小限制,超过大小可能会丢失

3.站点之间可能互相访问cookie,造成安全问题

  • 解决问题方案:

1.使用Https

2.大小不能超过4k

3.同源策略(协议、主机、端口号完全相同)

Java三十七篇:cookie和session
img

Cookie 与 Session 的区别:

  • Cookie 存在浏览器的文件里,Session 存在服务器的文件里
  • Session 是基于 Cookie 实现的,具体做法就是把 SessionID 存在 Cookie 里

共同点 :由服务端统一设置发送给客户端。


本篇文章来源于微信公众号: 小刘Java之路

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/11065.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!