如何使用 HttpOnly cookie 制作 "logout all" 功能?

How to make a "logout all" feature using HttpOnly cookies?

当从另一个客户端(例如 2 个不同的浏览器)访问服务器时,是否有任何方法可以删除存储在客户端中的 httpOnly cookie 或使其过期?

我想创建一个“全部注销”按钮,用于从每台设备注销用户,现在我将 cookie 存储在数据库中,并在用户单击“全部注销”时将其从数据库中删除然后我只在 cookie 存储在数据库中时进行身份验证。这种方法够吗?它有任何安全问题吗?

如果没有来自拥有它们的浏览器的请求,您不能删除 HTTP-only cookie。 HTTP-only cookie 只能通过 Set-Cookie header.

修改

By now I'm storing the cookies in the database and removing them from database when the user clicks in "logout all" an then I authenticate only if the cookie is stored in the database. Is this approach enough? Is there any security issues with it?

这取决于您如何生成它们。如果您正在使用 CSPRNG 生成随机令牌,则该方法是安全的并被推荐,因为如果攻击者可以访问用户登录的计算机,则用户可以撤销令牌(假设无法使用更改密码令牌)。