在 HTTP 连接中使用基于令牌的身份验证时如何防止重放攻击

How to prevent replay attacks when using token based authentification in an HTTP connection

在使用基于令牌的身份验证时如何防止重放攻击并为我的应用程序添加另一层加密,例如:JSON Web 身份验证?

如果您想保护您的应用程序身份验证免受重放攻击,您可以包含一个随机数 (jti), expiration time (exp), and issued time (iat)。

有关详细信息,请参阅 spec

更多细节。

A replay attack (also known as playback attack) is a form of network attack in which a valid data transmission is maliciously or fraudulently repeated or delayed. [wikipedia]

因此,如果您使用随机数,则数据只能传输一次,因此无法重新传输。这可以防止经典重放攻击。

为避免延迟攻击,使用了到期时间和发布时间。这种攻击不仅包括捕获数据流量,还包括中断受害者的流量。中断交通需要时间。当然,使用过期时间和发行时间并不是 100% 的解决方案,但如果您明智地选择这些值,则可以将风险降至最低。

您可以使用https。你应该使用 https。