我正在寻找一种替代非for的方法来防止重放攻击。
我的场景:我植入了一家售票处,在那里你可以买到票,为了防止两个人试图购买同一张票,我增加了一个预订系统。因此,当您选择座位时,会发送到预订服务的请求,该服务存储预定时间为10分钟。现在我的问题是:如何防止潜在的攻击者嗅探预订请求并一次又一次地重放它。这会使座位(最坏的情况是所有的座位)被无限阻塞。
由于售票处是开源的,如果有必要的话,代码是可用的!已经谢谢了!
发布于 2022-10-09 10:08:03
当其他人面临同样的问题时,下面是我为解决这个问题所做的事情:
我添加了一个reCAPTCHA的可选集成(售票处的管理员可以启用它)。一旦选择了一个座位(因此需要保留),就会执行不可见的captcha,并生成一个客户端令牌。此令牌可在2分钟内使用,并发送到后端服务器,在该服务器上将使用google进行验证。当令牌已被使用或超时时,服务器将向客户端发送一个错误,该客户端将生成一个新的reCAPTCHA令牌并重试请求。潜在的开发者需要自己来产生这样的令牌,而根据谷歌的说法,这是不可能的。
https://stackoverflow.com/questions/73949269
复制相似问题