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