我通過HTTP(S)傳輸密碼爲HttpServlet
作爲參數。要獲取密碼,我使用Servlets getParameter(String)
方法,該方法返回一個String。但是應該像提到的here那樣使用char[]
來處理密碼。安全地處理servlet中的密碼
那麼,我想知道的是:我怎樣才能安全地處理的Java Servlet中的密碼?我的解決方案是getParameter(String)
唯一一個還是有更好的選擇?
請記住,我並不關心如何安全地傳輸密碼(我期望傳輸是安全的 - 也許使用SSL或其他)。
感謝提前:)
編輯: 我忘了提,我不使用密碼自己(對某些類型的訪問限制我的應用程序)。我只是轉發密碼(所以你可以說我的WebApp就像是一個遙控器)。
非常好的問題,但答案是你根本不應該處理密碼。你應該使用容器管理認證(CMA)。您應該自己處理密碼的唯一場合是更改配置文件或更改密碼請求。 – EJP
@EJP哦,你是完全正確的,我只是忘了從我的問題域提到的東西。我自己並沒有使用密碼(用於訪問我的webapp)我只是將它像「遠程控制」一樣轉發到windows cmd,這需要密碼。我會編輯它。 – Jan
好吧,你被'HttpServletRequest.getParameter()'返回一個字符串。但它只是在請求的生命期間被引用,除非你自己藏了一個引用,你不應該這樣做。 – EJP