如果我正确理解了AppCheck的工作流,它本质上是基于成功的证明机制创建一个具有特定到期时间的jwt令牌,然后,所有包含此jwt的请求都被视为有效,并且来自允许的应用程序。但是假设有人下载了一个合法的应用程序,并检查他们的网络来查看和复制这样的jwt令牌(比如说在浏览器的开发工具中检查网络)。这个jwt令牌可以插入到任何其他的应用程序中,比如一个本地主机服务器,并与projectid等结合起来...来执行看起来合法的请求,但是现在来自未经验证的应用程序?
41ik7eoe1#
您所指的是replay attack(拦截数据并重新传输)。Firebase App Check令牌可以配置为有效期至少为30分钟,最长为7天,并且同一令牌 * 可以重复使用 *。但是,如果您在自定义后端服务器上有适当的安全规则或验证,这应该不是一个严重的问题。如果您仍然希望确保一个令牌只能使用一次,则必须使用一些自定义逻辑来阻止令牌,或者直接使用reCAPTCHA等证明提供程序。每个reCAPTCHA用户响应令牌的有效期为两分钟,并且 * 只能验证一次以防止重放攻击 *。如果需要新令牌,可以重新运行reCAPTCHA验证。我不确定其他提供程序,但是您可以编写自己的逻辑来防止重用令牌。
1条答案
按热度按时间41ik7eoe1#
您所指的是replay attack(拦截数据并重新传输)。Firebase App Check令牌可以配置为有效期至少为30分钟,最长为7天,并且同一令牌 * 可以重复使用 *。
但是,如果您在自定义后端服务器上有适当的安全规则或验证,这应该不是一个严重的问题。
如果您仍然希望确保一个令牌只能使用一次,则必须使用一些自定义逻辑来阻止令牌,或者直接使用reCAPTCHA等证明提供程序。
每个reCAPTCHA用户响应令牌的有效期为两分钟,并且 * 只能验证一次以防止重放攻击 *。如果需要新令牌,可以重新运行reCAPTCHA验证。
我不确定其他提供程序,但是您可以编写自己的逻辑来防止重用令牌。