【问题标题】:Storing third-party passwords for reuse across pages存储第三方密码以供跨页面重复使用
【发布时间】:2013-02-11 14:28:55
【问题描述】:

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

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

编辑: 加密密码、将加密密码存储在 cookie 中并将加密密钥存储在会话中的安全性如何?

【问题讨论】:

  • 理想情况下,您应该要求提供 API 的服务编写更好的 API(例如使用访问令牌的 API)。
  • 是的,你需要使用令牌
  • API 不会也应该存储状态,所以我不认为这是一个解决方案。也就是说,如果有一个很好的链接可以传递给 API 开发人员关于令牌,我会的。我过去曾与该开发人员进行过沟通。他需要什么信息?

标签: php passwords security


【解决方案1】:

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

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

【讨论】:

  • 谢谢李。我刚刚编辑了建议类似方法的问题:将加密密钥存储在会话中,将加密密码存储在 cookie 中。我还要看看 Secure Session 类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2012-12-12
  • 2015-07-11
  • 2017-12-31
  • 2016-01-28
相关资源
最近更新 更多