HTTP是一个无状态的协议
就是任意两次请求是没有关联的,互不影响。http正如其名就是超文本传输协议,是为了传输文本字符
HTTP是一个无状态的协议。这句话里的无状态是什么意思
http协议添加了cookie,使http可以变得有状态,通过发送请求时带上cookie,服务器端返回设置cookie。
session就是依托cookie机制建立的用户回话机制。
sessionId是session的区分标志,就像身份证来标识用户,登录等等其他业务都需要,所以安全问题就出现了session劫持(Session Hijacking),通过获取用户的sessionid来伪装成用户进行业务操作。
session劫持的处理,就是增加获取sessionid的难度(完全避免是不可能,万一电脑都被人盗取使用了,就区分不了)
一, sessionid只允许在cookie设置与httponly属性,不允许js读取,防止跨站xss的 js盗取
二,业务处理的请求(seesion劫持就是为了发送业务请求,普通浏览基本意义不大),添加请求唯一性token,防止重复发送,类似防止form重复提交(csrf攻击),
三,sessionid的定期更换,类同密码的定期更换(sessionid劫持后,sessionid更换使劫持后的sessionid失效)