【发布时间】:2020-03-15 05:52:23
【问题描述】:
我正在使用基于类的组件构建一个反应应用程序,并希望在道具中传递一个身份验证令牌。连接到我的浏览器的外部人员可以获取令牌并开始使用它吗?
如果这似乎是一个非常基本的问题,我深表歉意!
【问题讨论】:
标签: reactjs authentication react-props react-component
我正在使用基于类的组件构建一个反应应用程序,并希望在道具中传递一个身份验证令牌。连接到我的浏览器的外部人员可以获取令牌并开始使用它吗?
如果这似乎是一个非常基本的问题,我深表歉意!
【问题讨论】:
标签: reactjs authentication react-props react-component
没有问题,您应该关注的是令牌内部没有敏感信息,因为它可以被“任何人”“抓取”和“看到”(某些攻击可能能够获取令牌,没关系只要它受到良好保护,例如,这意味着令牌过期并且没有敏感信息)
【讨论】:
如果您将其用作加密格式,那么我认为它不应该有任何危害。
【讨论】:
将令牌与道具一起使用是错误的。如果您使用诸如 Axios 之类的库,则需要在主 Axios 文件中添加一些包含令牌的授权标头。这是在 React、Vue 等中使用令牌的极少数场景之一......所以我认为你不应该用 props 发送它,因为你不需要这样做。此外,当您收到该令牌时,您需要将该令牌保存在本地存储或 Cookies 中,因此您可以从任何您想要的文件中访问它并从中提取您需要的所有数据,而无需担心通过道具传递它。
【讨论】:
存储在客户端应用程序中的任何内容都可以通过以下方式查看和修改:
在身份验证令牌的情况下,通过使用消息签名来降低修改风险;如果消息内容发生变化,签名将与签名者公钥的消息不匹配,因此拒绝令牌。
但是,令牌的可见性仍然是一个需要考虑的问题 - 它可能会导致对应用程序端点的重放攻击,从而使最终用户能够执行您可能不希望他们执行的操作。如果您的应用程序容易受到 XSS 攻击,那么攻击者也可以执行这些操作。
一般来说,一个好的做法是将客户端提供的任何内容视为恶意内容,除非另有明确证明。
【讨论】: