我正在ReactJS中建立一个非常大的网站项目,该项目可以处理资金,因此在谈论安全性时我有点偏执。
我有一个Login组件,其状态由“ email”和“ password”组成。通过在相应的输入字段中键入来填充这些值。无论如何,实际的登录结构是非常安全的,因为我将jwt与公钥和私钥以及CSRF令牌一起使用。
我的问题是我不知道在本地状态下存储电子邮件和密码的安全性。可以通过跨站点脚本轻松访问它还是只能通过React Chrome扩展程序看到它?据我所知,状态不应该持久。谁能解决我的疑问?
(请不要因为某些英语错误而讨厌我,我是意大利人,所以“ mamma mia pizzeria”)
答案 0 :(得分:1)
将电子邮件和密码存储在本地状态
这是一个非常糟糕的主意。在客户端上存储敏感数据总是有风险的,因为可以使用开发工具进行检索。这将很耗时但可以实现。而且由于您的产品涉及金钱,因此您应该保持偏执。
更好的方法是创建登录表单,并在成功后发送CSRF_TOKEN或任何哈希。存储此哈希,并针对每个请求以及IP或任何其他唯一的生成值对其进行验证。
理想情况下,您不应保存UserName/Email
和Password
。如果要显示问候语的用户名或用户名,请在User类中保留一个昵称属性并使用它。这样,您就不会暴露任何重要信息。
Email
也是至关重要的信息,因为有人可以发送钓鱼电子邮件并诱骗用户提供重要的信息。您可以研究安全Cookie和其他方法,但是在本地状态/本地存储上存储总是很糟糕