我使用Sinatra和Omniauth(特別是google oauth2)來爲網站提供服務。我對於在cookie中存儲哪些數據是安全的,以及哪些數據是不安全的存在困惑。使用Omniauth進行身份驗證時,我應該在cookie中存儲哪些數據?
我傾向於說我應該簡單地在Cookie中存儲一個authorized => true
字段,一旦我確認AuthHash包含訪問令牌。 Cookie使用Rack::Sesssion::Cookie
和:secret => "some-really-long-and-strong-password"
進行保護。這個想法是否正確?此外,如果有人想破解網站(即登錄時沒有真正登錄),他們所需要做的就是成功破解cookie的祕密,並用authorized => true
製作假cookie,對吧?
我沒有看到將存儲在Omniauth::AuthHash
的憑據部分的實際訪問密鑰的任何值,因爲這似乎是敏感信息...
謝謝,如果cookie的祕密足夠強大,我是否正確地說「竊取cookie中包含的所有數據」是具有挑戰性的?對於使用
標籤的CSRF,最糟糕的情況似乎是您獲得經過身份驗證的用戶對該網站執行意外操作。如果這是一個有點無害的情況(即該網站沒有做任何太敏感的事情),那麼我不會過分擔心這一點。劫持用戶的會話也一樣。 –
jabalsad
您可以加密cookie數據,這會使其更安全。 –
看看encrypted_cookie https://rubygems.org/gems/encrypted_cookie – iain