String
s在Java中保持一段時間,可能a long while。這是一件好事,除非String
包含用戶的實際密碼。 Character arrays are suggested,因爲它們不是不可變的,可以更快地清除。 (讓我們希望不會有像Heartbleed一樣工作的「苦咖啡」攻擊,但是對JVM(遠程堆轉儲))。如何減少在Spring中在內存中攻擊密碼的表面積?
我注意到,春季安全的PasswordEncoder需要CharSequence
不是字符串,可能是這個原因。不過,我不確定我應該使用什麼對象來將密碼保留在內存預散列中。 StringBuilder
會合適嗎?那將是什麼樣子?我甚至不確定是否要創建一個REST API(通過Spring Data或Spring MVC引導下的Jackson),我可以如何保持它不變爲String
。
我如何代碼創建/更新密碼,同時又是儘可能的安全,並避免使用String
S中的各種問題一個JSON REST API?
在你進入spring安全之前,你將不得不避免這樣一個事實:大多數REST框架(包括spring安全內置web安全性)都會將密碼作爲請求參數獲取......這是一個字符串。 –