Reactjs 使用道具在react中传递身份验证令牌有哪些安全风险?

Reactjs 使用道具在react中传递身份验证令牌有哪些安全风险?,reactjs,authentication,react-props,react-component,Reactjs,Authentication,React Props,React Component,我正在使用基于类的组件构建react应用程序,并希望在props中传递身份验证令牌。连接到我的浏览器的外部人员是否可以获取令牌并开始使用它进行操作 如果这是一个非常基本的问题,我道歉 没有问题,您应该关注的是令牌中没有敏感信息,因为它可以被“任何人”“抓取”和“看到”(一些攻击可能能够获得令牌,只要它得到很好的保护就可以了,这意味着令牌过期并且没有敏感信息)如果您使用它作为加密格式,那么我认为它不会有任何伤害。将令牌与道具一起使用是一个错误。如果使用Axios之类的库,则需要向主Axios文件中

我正在使用基于类的组件构建react应用程序,并希望在props中传递身份验证令牌。连接到我的浏览器的外部人员是否可以获取令牌并开始使用它进行操作


如果这是一个非常基本的问题,我道歉

没有问题,您应该关注的是令牌中没有敏感信息,因为它可以被“任何人”“抓取”和“看到”(一些攻击可能能够获得令牌,只要它得到很好的保护就可以了,这意味着令牌过期并且没有敏感信息)

如果您使用它作为加密格式,那么我认为它不会有任何伤害。

将令牌与道具一起使用是一个错误。如果使用Axios之类的库,则需要向主Axios文件中添加一些包含令牌的授权头。这是React、Vue等中极少数使用令牌的场景之一。。。所以我认为你不应该把它和道具一起发送,因为你不需要这样做。此外,当您收到令牌时,还需要将其保存在本地存储器或Cookies中,因此您可以从任何需要的文件中访问该令牌,并从中提取所需的所有数据,而无需费心通过道具传递。

客户端应用程序中存储的任何内容都可以通过以下方式查看和修改:

  • 最终用户
  • 进行XSS攻击的攻击者
在认证令牌的情况下,通过使用消息签名来减轻修改的风险;如果消息内容发生更改,签名将与签名者公钥的消息不匹配,因此令牌将被拒绝

但是,令牌的可见性仍然是一个需要考虑的问题——它可能导致对应用程序端点的重放攻击,使最终用户有能力执行可能不希望的行为。如果您的应用程序易受XSS攻击,则攻击者也可以执行这些操作


一般来说,一个好的做法是将客户端提供的任何内容视为恶意,除非明确证明不是恶意的。

如果使用axios,如果不使用?当然可以为fetch函数创建一个包装器,如果我不想这样做呢?如果我只是想从令牌中提取一些信息呢?令牌中可能包含哪些敏感信息?我想会话的开始和结束时间可能在一个令牌中,这会在那个时候将用户绑定到一个特定的位置?还有,如果有人在我进行会话期间使用我的令牌来“背驮”我的会话呢?这是可能的,但前提是他们有权访问您的令牌(例如:您正在遭受攻击),您不应该拥有的是用户密码(用户id通常可以)基本上,任何你不想公开的信息都不应该出现在代币中。好吧,我们是在一个卫星通信网络应用程序的环境中-很有可能有人会千方百计访问其他人的用户会话-你的想法是什么?老实说,这取决于用户使用代币应用程序安全且不使用外部脚本,请查看Dominic关于可能的攻击(XSS)等的回答。我的观点仍然站得住脚,令牌不应包含敏感信息,您应该假设令牌是“公共的”(每个人都可能看到它,看到关于攻击等的内容)。此外,您可能还应该探索关于除JWT之外的auth的其他选项(如果使用正确,则可以),但可能还有其他“更安全”的选项