2013-02-26 87 views
1

我正在編寫一個特定的Web服務與API的接口。每個API調用都要求發送用戶的用戶名和密碼,而不保留狀態。存儲第三方密碼以便跨頁面重用

理想情況下,使用我的Web服務時,用戶將輸入一次他的API用戶名和密碼,我的Web服務將存儲該信息,直到會話結束。我知道我不應該使用PHP會話存儲API密碼,也不應該在數據庫中存儲安全問題。因此,如何在會話期間安全地存儲和訪問密碼?

編輯: 加密密碼,將加密密碼存儲在cookie中,加密密鑰存儲在會話中有多安全?

+1

理想情況下,您應該要求提供API的服務編寫更好的API(例如使用訪問令牌的API)。 – Amber 2013-02-26 07:55:03

+0

是的,你需要使用令牌 – mpm 2013-02-26 07:55:43

+0

API不存儲和應該存儲狀態,所以我不認爲這是一個解決方案。也就是說,如果有一個很好的鏈接,我可以傳遞給API開發人員有關令牌,我會。我曾經和那個開發者溝通過。他需要什麼信息? – dotancohen 2013-02-26 07:59:37

回答

2

將加密的API用戶名和密碼存儲在當前會話中,使用PHP擴展名mcrypt。即時生成加密密鑰並將其存儲在cookie中(安全/ HTTPS,HTTP Only)。即使在服務器數據泄露的情況下,攻擊者仍然需要訪問駐留在每個用戶個人計算機上的cookie。

或者,嘗試加密整個會話。 PHP Secure Session class使用類似的技術(存儲在cookie中的加密密鑰)與session_set_save_handler相結合來透明地加密/解密會話。

+0

謝謝李先生。我剛剛編輯了提出類似方法的問題:將加密密鑰存儲在會話中,並將加密密碼存儲在cookie中。我還會看看安全會話類。 – dotancohen 2013-02-26 08:38:49