2012-08-07 123 views
8

我不確定是否應該在安全性或/ stackoverflow上發佈此信息,因爲我關心安全性和性能。正確的cookie管理

我正在嘗試查找cookie管理的可靠來源。我雖然讀了OWASP,所以我大致知道什麼是危險的。

但我需要使用cookie來認證我的用戶。有沒有完整的一步一步的指導?

我做了什麼:

  • 產生一個隨機的和唯一的字符串。

  • 聯營隨機字符串,在我的緩存rndstring用戶 - >用戶

  • 創造一個安全,並簽署餅乾。 value = hash(rndstring + secret)| rndstring

  • 如果用戶回來,我檢查散列值是否匹配,以及rndstring是否在我的緩存中。

  • 如果是得到用戶。

我覺得我的方法有缺陷,因爲我自己做了。

另一個問題是,我從我的緩存中的數據庫安全用戶對象。如果用戶更新他的個人資料,我還必須更新緩存。

我正在使用java與play2框架+ mongoDB。

你可以推薦我哪些資源?

+2

+1對於「我認爲我的方法有缺陷,因爲我自己做了。」 – 2012-08-07 08:37:03

回答

2

我認爲這是Security StackExchange的問題,我注意到您在那裏也有類似的問題,最近的問題是excellent answer from DW。 security.stackexchange.com論壇上有很多人會批評你的方法論。

我個人不會建議開發自己的會話管理,實際上我會建議不要這樣做。 「玩遊戲框架」的會話管理已經被許多人審查過,而你的玩家卻沒有並且很容易發現你錯過的漏洞。我會使用您選擇的編程框架提供的內置會話管理。你看過該劇documentation?

在資源方面,你應該看看大衛魯克安全發展原則 - herehere

如果您使用cookie改變了主意,您可以查看web keys,,這是一種將不可猜測的標記插入到URL中的方法。

在閱讀Owasp時,您是否閱讀過最新的Session Management cheatsheet?我認爲你的許多問題都是在那裏回答的。

最後一個資源是SANS Top 25 Software Errors

+0

感謝一些鏈接對我來說是新的。我只是在做這個,因爲我使用的是Play 2,並且沒有關於這個話題的文檔,雖然有一個例子,但它對我沒有太大意義。我也應該說,我也使用內置的cookie。只需要我自己的認證。我也在這裏問了一個關於play2 auth的問題http://stackoverflow.com/questions/11820273/java-play-2-authentication-does-not-make-sense但是幻燈片/ pdf似乎對我很有前途! – 2012-08-07 10:56:33

+0

非常感謝我嘗試儘可能多地使用play2提供的功能。 – 2012-08-07 13:38:29

1

我建議你每次檢查哈希和匹配時都會生成一個新的唯一字符串並更新你的cookie值。這將改善您的系統的安全性。由於餅乾被盜的情況下黑客攻擊的可能性降低。