2013-01-22 49 views
0

應用程序還沒有完成,現在密碼和數據庫信息只是在數據庫中加密,並用密鑰在應用程序上解密。在數據庫中存儲用戶的數據庫密碼。使用應用程序用戶密碼作爲加密的一種好方法?

但我在想,如果我可以將數據庫信息保存在加密表上,那麼每個用戶數據庫組合中的一個條目和這些信息都會使用散列用戶密碼作爲鹽進行加密(與在用戶表,當然)。因此,如果攻擊者以某種方式設法掌握數據庫或應用程序,它仍然無法讀取所有數據庫密碼,因爲它需要有權訪問此類數據庫的用戶的密碼。

而我的想法是,當用戶登錄時,他的密碼被散列(如在數據庫中的鹽),並保存爲具有較短壽命的cookie以在用戶連接時使用它。

雖然我在想,如果攻擊者在我的應用程序上獲得執行權,他仍然可以訪問每個請求的連接用戶的cookie。

另一個缺點是用戶無法重置密碼,因爲如果他這樣做了,他不能解密密碼來訪問數據庫。

那麼,你有什麼想法呢?這是一個好方法嗎?你會怎麼做?

回答

1

這裏有一個誤解。單獨使用密碼技術無法保護您的整個業務/公司/數據。

當您對數據進行加密並且用戶始終解密並使用這些數據時,您無法對其進行中繼,因爲如果讓黑客訪問您的服務器,黑客就能像其他用戶一樣解密數據。

爲了保護數據,你必須採取其他措施,如措施:

  • 分析您的Web應用程序代碼,防止所有類型的SQL注入,代碼執行,LFIs,農村金融機構,XSSes的等

  • 分析您的數據庫訪問列表。即使用戶知道用戶名/密碼,也不要讓您的數據庫服務器可用於外部IP。用適當的訪問列表保護數據庫。如果大多數頁面沒有在表格中輸入數據並只執行select查詢,那麼只需授予用戶SELECT權限併爲SQL查詢定義此用戶/通行證。

  • 始終保持您的服務器軟件更新。它可能是服務器操作系統,Web服務器應用程序或Web應用程序本身

你可以用上面的方法保護您的數據/服務器,我不認爲總體呈加密用戶在使用中的數據庫加密始終是一個好主意。它會降低速度/性能,並且不會幫助您防止被黑客入侵。

相關問題