我一直在爲我公司的網站製作標準化的JSON API;我希望有一種驗證用戶使用API的方法,同時儘可能保持API無狀態。我的想法是以下幾點:按請求API密鑰
用戶登錄,Web服務對用戶進行認證,並生成被傳遞到客戶端,與到期日期一個隨機字符串。這存儲在cookie中,以及數據庫中的條目。
對於每個API請求,Web服務都會根據數據庫條目檢查cookie字符串。如果進行身份驗證,Web服務將生成一個新字符串,將舊字符串替換爲數據庫中的新字符串和Cookie,然後發回請求的信息。
如果客戶端發送一個請求,並在數據庫中的字符串設置爲NULL cookie不匹配的數據庫條目和客戶端必須再次登錄,並從步驟啓動過程1.
如果在到期日期之後發送請求,則數據庫中的字符串將設置爲NULL,並且用戶必須再次登錄。
我想造成儘可能少的干擾儘可能與我公司目前的設置爲我們慢慢過渡到新技術。這種方法通常是做什麼的?如果我這樣做,會遇到什麼樣的安全問題?我應該使用不同的方法嗎?
難道我這樣做的方式 - 會話ID永遠不能使用兩次,即使在同一個用戶 - 幫助避免重播攻擊? –
重放攻擊在簽名郵件區域更加有趣。會議固定是爲你的會議。對於您的具體情況,您應該選擇兩種方法之一(會話或消息簽名)。簽名是無狀態的,但需要您安全地交換密鑰(這可能在您提供API時起作用)。 – seong