我刚刚使用 Node.js 和 node-oauth2-server
库创建了自己的 OAuth2 服务器,并遵循此 tutorial .
实现这样的身份验证系统后,此时的问题是这样的。
好的。现在我可以在客户端存储承载 token ,用户不必每次都登录,我也不必存储他们的凭据。
但是,我仍然存储不记名 token ,当被盗时,将授予任何人与 token 原始所有者相同的访问权限。
我现在可以采取什么策略来执行以下规则:
- 已登录的用户无需重新登录,除非他们自己注销
- 不记名 token (存储在服务器端和客户端,不断刷新以阻止黑客攻击)
- 检测并处理用户的不记名 token 遭到泄露的情况。
以下是您必须遵循的一些规则,以确保恶意 JavaScript 无法访问您的 token :
- 通过 HTTPS 提供所有页面。
- 请勿使用 CDN 或任何其他不受信任的域加载 javascript、css 或其他内容。如果您这样做,该内容就可以访问 localStorage 或 cookie。
- 渲染由用户输入生成的动态内容时,始终实现 XSS escaping这会阻止用户内容加载新脚本。 Angular 和 React.js 中默认启用此功能。
我是一名优秀的程序员,十分优秀!