销毁 Flask Restful 令牌

Adi*_*ari 4 python security man-in-the-middle flask

以下Flask RESTful Destroy User Token讨论了如何销毁 Flask令牌,但这并不能阻止中间人攻击。无论如何要使令牌无效,使其在到期之前不再处于活动状态?

Mig*_*uel 5

您引用的问题中显示的令牌是通过向某些数据添加加密签名而创建的。通常,存储在令牌中的数据包括令牌所有者(例如用户 ID),还可以包括到期日期。

这些令牌的好处是所有有用的数据都存储在令牌中,因此您无需在数据库中存储任何内容。您只需将令牌传递给客户端,当客户端将其发回时,您对其进行解码并使用其中的信息来了解客户端是谁。

这种方法的缺点是没有简单的方法来撤销令牌,因为令牌没有存储在任何地方。要扩展此机制以允许撤销,您可以添加存储撤销令牌的数据库表。然后在令牌验证期间,您不仅要解码令牌,还要确保令牌不在您的撤销列表中。

另一种完全不同的方法是不使用签名令牌。只需将令牌设为随机 UUID 并将其存储在每个用户的用户表中。如果您对其进行索引,那么当客户端发送令牌时,您可以通过数据库搜索来定位用户。然后只需通过清除用户的令牌字段即可撤销令牌。

我希望这有帮助!