簡體   English   中英

Redis 過期復制到從站

[英]Redis expiration replication to slaves

我有興趣使用 Redis 在服務器端存儲客戶的 session 以進行授權。 基本上,當客戶登錄時,hash 將存儲在 Redis 集群中,並將密鑰返回給客戶。 在每個請求中,客戶端將密鑰作為 header 傳遞,服務將檢查 hash 是否仍然存在於 Redis 中,如果不存在,則將返回一條錯誤消息。 該密鑰將在 X 分鍾后過期,導致使用該密鑰的任何請求失敗。 但是,我一直在網上閱讀到一些人因為過期復制到奴隸的方式而遇到問題。 從站僅在收到來自主站的 del 命令時才使密鑰過期,因此如果在此命令之前對從站進行“獲取”,則將返回該密鑰的值。

https://github.com/antirez/redis/issues/187

這個問題還存在嗎? 這對我來說似乎是個大問題,會造成一些安全漏洞。 對於陳舊數據來說可能沒什么大不了的,但是當用於授權時這很重要

A)不,不是真的——自 2014 年以來,即使從屬尚未從復制 stream 收到 DEL,過期密鑰的 GET 也會在從屬上返回“未找到”。突出的問題與 EXISTS 相關與 GET 不一致,僅當您依賴 EXISTS 命令的 output 時才有意義。

b) 完全獨立於此問題,復制滯后的可能性始終存在。 您的應用程序的安全性不應依賴於副本始終是最新的前提。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM