我可以在PHP会话变量中安全地存储用户名和密码吗?

Bjø*_*ten 8 php security rest

我想在REST api之上创建一个轻量级的webapp,用户应该只对其进行一次身份验证,从那时起,所有针对web api的请求都希望通过以某种方式保持用户名和密码来完成.

我已经创建了一个工作原型,如果对REST api的第一个请求成功,我将用户名和密码存储在会话变量中,从那时起,每个请求都是从会话变量中获取的auth信息.到现在为止还挺好.

通过这种方法,我意识到有权访问服务器的人将能够读取密码.PHP中是否有某种方法可以使用适当的安全性来遵循我的方法?

更新一些更多细节:

这里的预期目标是基于使用不同的数据查询而不是让用户为每次尝试输入他的用户名和密码来对从API检索的数据进行可视化.所以API完全是无状态的,但是带有gui的web应用程序应该是statefull.

在这种情况下,我无法控制Rest API,因此每个请求都将始终要求使用基本身份验证发送API用户名和密码,没有其他方案,如API密钥,会话令牌或类似的东西.这就是为什么我必须在用户会话持续时保留用户名和密码,并且我想知道将它们存储在会话变量中的方法是否可以被认为是安全的.

Ped*_*eck 1

只要您不在 REST API 服务器上存储会话状态,而仅在客户端 Web 应用程序上存储会话状态,从体系结构的角度来看似乎没问题。

如果您确实必须使用用户名和密码并且无法获得一次性令牌,您可以使用服务器端密钥对其进行加密,并在将它们发送到 API 时即时解密,这样即使有人可以劫持如果没有服务器端密钥,他们无法获取用户名和密码,但是您应该更加小心,以免泄露您的 php 会话。

PHP 会话安全

按照该问题的答案中概述的步骤进行操作,但您应该使用 HTTPS 进行用户与 Web 应用程序之间以及 Web 应用程序与 REST API 之间的所有交互。