存储第三方密码以跨页面重用

时间:2013-02-26 07:53:03

标签: php passwords security

我正在编写的一个特定Web服务与API接口。每个API调用都要求发送用户的用户名和密码,不保留任何状态。

理想情况下,当使用我的网络服务时,用户将输入一次他的API用户名和密码,我的网络服务将存储该信息,直到会话结束。我知道由于安全问题,我不应该使用PHP会话存储API密码,也不应该存储在数据库中。因此,如何在会话期间安全地存储和访问密码?

修改 加密密码,将加密密码存储在cookie中以及加密密钥存储在会话中有多安全?

1 个答案:

答案 0 :(得分:2)

使用像mcrypt这样的PHP扩展,将加密的API用户名和密码存储在当前会话中。动态生成加密密钥并将其存储在cookie中(安全/ HTTPS,HTTP Only)。即使在服务器数据泄露的情况下,攻击者仍然需要访问驻留在每个用户的计算机上的cookie。

或者,尝试加密整个会话。 PHP Secure Session class使用与session_set_save_handler结合的类似技术(存储在cookie中的加密密钥)来透明地加密/解密会话。