一方面通过校验用户请求的唯一性token(token是用户的get请求会生成token,post需要校验token的正确性),这种方式另一方面可以避免重复提交的问题.另一方面通过对sessionId进行时效性的设置,对用户的请求,每次判断用户的sessionId是否过期,过期则重新生成sessionId,不过这种方式对用户体验存在一些影响.
服务器段通过客户端请求携带过来的cookie找到会话的session,其实理解这个之后在看下面。 解决方案就是sessionID的值只允许cookie设置,而不是通过URL重置方式设置,同时设置cookie的httponly为true,这个属性是设置是否可通过客户端脚本访问这个设置的cookie,第一这个可以防止这个cookie被XSS读取从而引起session劫持,第二cookie设置不会像URL重置方式那么容易获取sessionID。 服务器端可以派发token,每次请求都验证上次派发的token的的正确性,这样即使你拿到了sessionID,你的token可能已经过期了。
一些站点会按照浏览器的UA信息或者是客户端的IP地址来生成一个签名串,每次回去比对这个签名串是否正确,如果网络环境发生了变化,即便是相同的cookie也会要求你重新登陆一下的