Token: 访问资源的凭证。一般用户通过用户名密码登录后,服务端会将登录凭证做数字签名,加密之后的字符串作为Token。并在客户端后面的向服务端的请求中携带,作为凭证。
Token在客户端的存储主要有:
1、localStroage、sessionStroage,二者主要区别在于,关闭浏览器sessionStroage会被清除,但localStroage不会。将Token存于Web Stroage会导致容易受到XSS攻击,因为Web Stroage作为一种存储机制,在传输过程中不会执行任何安全标准,所以要做好XSS防范。
2、Cookie,存放在Cookie中可以通过设置http-only来防止XSS攻击,也可以指定secure来保证cookie只在https协议下传输,缺点是不满足Restful最佳实践,容易受到CSRF攻击。
CSRF:(Cross-Site Request Forgery)跨站点请求伪造,简单来说就是,用户登录一个网站A,在没有退出登录的状态下,又登陆了网站B,网站B就可以拿到该用户登录网站A的Cookie,虽然拿不到用户信息,但可以伪造该用户向网站A发送请求。