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

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

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

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

更新一些更多细节:

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

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

只要您不在REST API服务器上存储会话状态,只在您的客户端webapp上存储,从架构的角度来看似乎没问题.

如果你真的必须使用用户名和密码并且无法获得一次性令牌,你可以使用服务器端密钥加密它们,并在将它们发送到API时即时解密,所以即使有人可以劫持一个会话,他们无法获得没有服务器端密钥的用户名和密码,但你应该更加小心,无论如何泄漏你的PHP会话.

PHP Session Security.

按照该问题的答案中列出的步骤进行操作,但您应在所有交互中使用HTTPS,在用户和Web应用程序之间以及在webapp和REST API之间使用HTTPS.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...