为什么token能够防止CSRF

CSRF叫做跨站请求伪造

用户访问网站中错误点击了非法网站,攻击者盗取用户Cookie信息伪造请求访问其他网站,达到自己的目的。

Cookie的原理:

        Cookie存放在客户端,可以存放一些用户信息保证状态性。在配合session的时候,服务端生成session,并将对应的sessionID返回到客户端存放到Cookie, 在下一次请求中通过Cookie进行携带。

通过这个特性,攻击者可以盗取Cookie中的信息

但是token一般存放到local storage, 然后前端通过某些方法获取token进行发送;local Storage中的数据相比于Cookie安全性更高;并且token字符串是经过加密,当被篡改后在服务端进行解密发送数据错误可以得到反馈

Cookie和LocalStorage的区别?

Coolie:

1.只能存储文本 2.单条存储有大小限制4KB左右

3. 数量限制 , 一般浏览器,限制大概在50条左右

4.需要解决跨域问题

5. 时效限制

localStorage

1. 主要解决Cookie存储空间不足,大小一般为5M;一般仅支持高级浏览器

2. 在隐私模式下localStorage不可被获取, 不能被爬虫获取

3. 相比于sessionStorage,LocalStorage是永久性存储

4. 调用localStorage时每次调用接口的时候放在HTTP请求头的Authorization字段里

你可能感兴趣的:(网络,java)