【Try to Hack】Cookie和Session

举报
开心星人 发表于 2022/06/29 17:18:33 2022/06/29
【摘要】 📒博客主页:开心星人的博客主页🔥系列专栏:Try to Hack🎉欢迎关注🔎点赞👍收藏⭐️留言📝📆首发时间:🌴2022年5月21日🌴🍭作者水平很有限,如果发现错误,还望告知,感谢!本文很多内容摘自这篇,仅作为自己学习的记录@toc 🌳1.Cookie和Session区别①Cookie可以存储在浏览器或者本地,Session只能存在服务器②session 能够存储任意的 ...

📒博客主页:开心星人的博客主页
🔥系列专栏:Try to Hack
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年5月21日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

本文很多内容摘自这篇,仅作为自己学习的记录

@toc

🌳1.Cookie和Session区别

①Cookie可以存储在浏览器或者本地,Session只能存在服务器
②session 能够存储任意的 java 对象,cookie 只能存储 String 类型的对象(都是键值对的形式)
③Session比Cookie更具有安全性(Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击)
④Session占用服务器性能,Session过多,增加服务器压力
⑤单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie,Session是没有大小限制和服务器的内存大小有关。

🌳2.Cookie

流程:第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地(浏览器会将Cookie保存在内存中,或者是保存在客户端的硬盘中),当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。

生存周期:Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用户信息,更加安全。

🌳3.Session

流程
1、session的创建:session是在客户端与服务器交互的过程中,由服务器创建的,并且会返回一个session的Id给客户端,一个会话只能有一个session对象;
2、在此后的交互过程中,客户端在请求中带上这个ID;
3、服务器可根据此Session ID获取到对应的保存在服务器内存中的session内容,以便于识别用户并提取用户信息。

一般情况下客户端session的ID都是通过Cookie的方式与服务器交互的,对于客户端禁用了Cookie的情况,可以通过在请求的Url中带上这个Session ID达到使用Session的目的。(也有一些在页面表单隐藏字段添加session id的,但是需要请求有提交表单的行为时才可实现session交互)

会话:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。

Session 代表着服务器和客户端一次会话的过程。Session 对象存储特定用户会话所需的属性及配置信息。==这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当客户端关闭会话,或者 Session 超时失效时会话结束。==
敲重点,CSRF的利用点
【Try to Hack】CSRF(一)

Session的作用范围
1、一般来说,每次请求不同的域都会新创建一个session
2、对于多标签的浏览器来说,在一个浏览器窗口中,多个标签同时访问一个页面,session是一个。
3、对于多个浏览器窗口之间,同时或者相隔很短时间访问一个页面,session是多个的,和浏览器的进程有关。
4、对于一个同一个浏览器窗口,直接录入url访问同一应用的不同资源,session是一样的。

缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。

🌳3.Cookie和Session结合使用

1、存储在服务端:通过cookie存储一个session_id,然后具体的数据则是保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session。

2、将session数据加密,然后存储在cookie中。这种专业术语叫做client side session。flask采用的就是这种方式,但是也可以替换成其他形式。

参考链接

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。