欢迎光临散文网 会员登陆 & 注册

Java三十七篇:cookie和session

2023-03-12 11:04 作者:小刘Java之路  | 我要投稿

1.cookie 是什么

img
img
img

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

img
img

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

img
img

2.使用cookie的限制

img
img

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

img

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

4.第三方cookie

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.什么是同源策略

img
img

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

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

img

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

img

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

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

img

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

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

img

总结:

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

  • cookie存在的问题:

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

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

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

  • 解决问题方案:

1.使用Https

2.大小不能超过4k

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

img

Cookie 与 Session 的区别:

  • Cookie 存在浏览器的文件里,Session 存在服务器的文件里

  • Session 是基于 Cookie 实现的,具体做法就是把 SessionID 存在 Cookie 里

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


Java三十七篇:cookie和session的评论 (共 条)

分享到微博请遵守国家法律