前端如何使用token更安全?

目前是token保存在localStorage中,显然这样存在明显的安全问题,很容易受到XSS攻击,同样保存在cookie中也会存在类似的问题。请问前端或者后端有哪些有效的策略?

阅读 3.2k
3 个回答

你这个问题太宽泛了,任何关于安全的问题,往往都会基于某个前提或者某个假设,世界上没有绝对的安全。

按你的描述的话,如果想要更安全,可以尝试使用 sessionStorage,如果是 cookie 的话,可以让服务端通过设置 http-only 以及 same-site 这些属性来增加安全性。

确实,将token保存在localStorage或cookie中都可能导致安全问题。以下是一些建议,可以帮助你更安全地使用和存储token:

  1. HttpOnly cookies:使用HttpOnly cookies可以有效防止XSS攻击,因为它们不能通过JavaScript访问。这意味着即使有人成功执行了XSS攻击,他们也无法访问存储在HttpOnly cookie中的token。
  2. Secure cookies:为了防止中间人攻击,可以将cookie标记为“Secure”,这样它们只会通过HTTPS连接发送。这确保了cookie在传输过程中不会被截获。
  3. SameSite cookies:SameSite属性可以防止CSRF攻击,通过限制cookie在跨站请求时的发送。设置为“Strict”或“Lax”可以根据需要限制cookie在跨站请求时的发送。
  4. 短期token:使用短期token可以降低token被盗用的风险。即使攻击者窃取了token,他们只能在有效期内使用,一旦过期,攻击者将无法访问资源。
  5. 刷新token:配合短期token,可以实现刷新token机制。当短期token过期时,可以使用刷新token获取新的短期token。这样可以确保用户在不输入密码的情况下保持登录状态,同时降低token泄露的风险。
  6. 使用Content Security Policy(CSP):CSP可以帮助减少XSS攻击的风险,它可以限制哪些资源可以被加载到页面上,从而防止恶意脚本的执行。
  7. 输入验证和输出编码:对于所有用户输入进行严格的验证和输出编码,以防止潜在的XSS攻击。
  8. 对token进行加密:在传输和存储token时,对其进行加密可以提高安全性。即使攻击者截获了token,他们也无法对其进行解密。

总之,在前端和后端结合使用这些策略可以大大提高token的安全性。在实际应用中,需要根据具体的业务需求和安全要求来选择合适的策略。

问的太宽了,我司的就存在local里面,cookie里面不让放

不担心攻击是因为这个交由后端做的,其实前端能做的很少
还是和pm沟通一下吧,交由后端做

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题