美文网首页
Session、Cookies、Token

Session、Cookies、Token

作者: 白耳 | 来源:发表于2015-07-13 15:55 被阅读248次

一、Session

Session是什么

Session实际上是一个特定的时间概念,Web中的Session指的就是用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间,也就是用户浏览这个网站所花费的时间。

Session代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的

Session的创建

当JSP页面没有显式禁止session的时候,在打开浏览器第一次请求该jsp的时候,服务器会自动为其创建一个session,并赋予其一个sessionID,发送给客户端的浏览器。以后客户端接着请求本应用中其他资源的时候,会自动在请求头上添加:

Cookie:JSESSIONID=客户端第一次拿到的session ID

这样,服务器端在接到请求时候,就会收到session ID,并根据ID在内存中找到之前创建的session对象,提供给请求使用。

Session的删除

(1)Session超时:超时指的是连续一定时间服务器没有收到该Session所对应客户端的请求,并且这个时间超过了服务器设置的Session超时的最大时间

(2)程序调用HttpSession.invalidate()

(3)服务器关闭或服务停止

Session的存放

服务器端的内存中。不过session可以通过特殊的方式做持久化管理。

session是一个容器,可以存放会话过程中的任何对象。

二、Cookies

Cookies要解决的问题

有些开发者借助请求中的ip头部来唯一标识发出此次请求的客户端,但是这种方式存在很多问题。因为,有些用户是通过代理来访问的,比如用户A通过代理B连接网站www.example.com, 服务器端获取的ip信息是代理B分配给A的ip地址,如果用户这时断开代理,然后再次连接代理的话,它的代理ip地址又再次改变,也就说一个用户对应了多个ip地址,这种情况下,服务器端根据ip地址来标识用户的话,会认为请求是来自不同的用户,事实上是同一个用户。 还用另外一种情况就是,比如很多用户是在同一个局域网里通过路由连接互联网,然后都访问www.example.com的话,由于这些用户共享同一个外网ip地址,这会导致服务器认为这些用户是同一个用户发出的请求,因为他们是来自同一个ip地址的访问。

保持应用程序状态的第一步就是要知道如何来唯一地标识每个客户端。因为只有在http中请求中携带的信息才能用来标识客户端,所以在请求中必须包含某种可以用来标识客户端唯一身份的信息。Cookie设计出来就是用来解决这一问题的。

Token

既然我们可以检查User-Agent这个头部来加强安全性,那么不妨再利用其它的一些头部信息,把他们组合起来生成一个加密的token,并且让客户端在后续的请求中携带这个token!这样的话,攻击者基本上不可能猜测出这样一个token是怎么生成出来的。这好比你用信用卡在超市付款,一个你必须有信用卡(好比session id),另外你也必须输入一个支付密码(好比token),这有这两者都符合的情况下,你才能成功进入账号付款。

相关文章

  • Session、Cookies、Token

    一、Session Session是什么? Session实际上是一个特定的时间概念,Web中的Session指的...

  • Session和Token区别

    在面试中被问到。为什么要token验证,而不是使用session?除了session存储在cookies中,非浏览...

  • cookies/ session / token概念

    cookies session session与cookie的区别 cookie跨域请求携带如何解决 浏览器同源策...

  • cookie和session

    Persistent cookies 和 Session cookies Session cookie : 保存在...

  • 如何理解cookies,session,token

    1让浏览器告诉服务器我是谁。服务器不能区分两次请求是不是同一个浏览器发出的2cookie类似于给你的会员卡,是浏览...

  • 测试物语:Cookies Session Token

    背景:HTTP 请求是无状态的,但随着交互式应用兴起(需要登录的网站)需要管理会话,区分不同用户,这时候sessi...

  • sql注入

    session 和cookies原理

  • cookie 和 session

    cookies与session的区别: cookies是放在浏览器端(客户端);session放在服务器端,每个客...

  • Request

    基于get请求 基于post请求 代理(proxies参数) Cookies和Session Cookies Se...

  • Session & Cookies

    Cookies -> Mini K-V Database on client side, then server ...

网友评论

      本文标题:Session、Cookies、Token

      本文链接:https://www.haomeiwen.com/subject/nrpuqttx.html