簡體   English   中英

在PHP Web應用程序中安全地存儲用戶憑據

[英]Securely storing user credentials in DB, for PHP web application

我有一個構建的Web應用程序,現在需要存儲用戶憑據以訪問另一個系統。 (盡管我不願意這樣做,但遺憾的是我在此事上別無選擇。)

我的Web應用程序通過LDAP與Windows域控制器連接以驗證用戶帳戶。 因此,當用戶登錄我的應用程序時,應用程序會檢查LDAP以確保它們是有效用戶且密碼正確。 經過身份驗證后,用戶的雜項數據將從MySQL數據庫加載。

現在,我需要以某種方式在此數據庫中存儲此其他系統的用戶名和密碼,我正在探索最安全的方法。

我考慮過的一種方法是使用用戶的域密碼(由LDAP驗證)作為加密密鑰加密該其他系統的憑據。 這樣,如果有人確實以某種方式獲得了數據庫,那么它將沒有多大用處,因為每個記錄都會使用不同的(希望無論如何)密鑰進行加密,並且該密鑰在任何地方都不會出現在Web應用程序本身中。 此方法的問題是,當用戶更改其密碼時,其他系統的已保存憑據不再有效。 然后我必須再次提示其他系統憑據。 我並不反對這樣做,前提是沒有其他方法。

有什么想法嗎? 感謝您的時間。

編輯:我剛想到的其他東西是基於為LDAP公開的一些其他數據進行加密。 一個看起來很有希望的值(也可能對域中的任何人都不安全)是objectGUID ,我假設它是該帳戶的GUID。 我可能會使用加密密鑰。 域用戶或其他人是否容易找到它?

編輯#2:我發現任何域用戶都可以通過LDAP輕松查找GUID,因此我已經確定該方法已經完成。 我可能必須根據用戶密碼進行加密,除非有其他建議。

您可能想看看這個其他系統是否支持執行“單點登錄”的任何標准方法。 這樣你就不必重新發明輪子了

在沒有其他建議的情況下,我將使用用戶密碼簡單地加密輔助憑證。 這並不理想(因為我在更新數據時會丟失數據),但目前應該足夠我的特定項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM