OAuth2承载令牌刷新策略
我刚刚使用Node.js和node-oauth2-server
库创建了自己的OAuth2服务器,并遵循此tutorial。
在实施这种认证系统之后,此时的问题是这样的。
好。现在我可以将Bearer令牌存储在客户端,用户不必每次都登录,也不必存储他们的凭据。
但是,我仍在存储Bearer令牌,当被盗时,将授予任何人对令牌原始所有者的相同访问权限。
我现在可以采取什么策略,以便我可以执行以下规则:
- 登录用户除非自己注销,否则无需重新登录
- 持有者令牌(存储在服务器和客户端都不断刷新以阻止黑客)
- 检测并处理用户的承载令牌受到威胁时的情况。
以下是一些必须遵循的规则,以确保没有恶意JavaScript可以访问您的令牌:
- 通过HTTPS提供所有页面。
- 请勿使用CDN或任何其他不受信任的域来加载javascript,css或其他内容。如果您这样做,该内容可以访问localStorage或cookie。
- 在呈现由用户输入生成的动态内容时,请始终实现XSS escaping,以防止用户内容加载新脚本。这在Angular和React.js中默认启用。