我想在 REST api 之上制作一个轻量级的 web 应用程序,用户只需进行一次身份验证,从那时起,所有针对 web api 的请求都希望通过以某种方式保持用户名和密码有效来完成。
我已经做了一个工作原型我在哪里将用户名和密码存储在会话变量中如果对 REST api 的第一个请求成功,从那时起,每个请求都使用从会话变量获取的身份验证信息进行。到目前为止,一切都很好。
通过这种方法,我意识到有权访问服务器的人将能够读取密码。 PHP 中是否有某种方法可以让我遵循我的方法并保持适当的安全性?
更新一些更多细节:
这里的预期目标是基于使用不同的数据查询来实现从 API 检索的数据的可视化,但不让用户每次尝试都输入用户名和密码。所以 API 是完全无状态的,但带有 gui 的 Web 应用程序应该是有状态的。
在这种情况下,我无法控制 Rest API,因此对它的每个请求始终需要发送具有基本身份验证的 API 用户名和密码,没有其他方案,例如 API 密钥、会话令牌或类似的东西。这就是为什么我必须在用户会话持续期间保留用户名和密码,并且我想知道将它们存储在会话变量中的方法是否可以被认为是安全的。
只要您不在 REST API 服务器上存储会话状态,而仅在客户端 Web 应用程序上存储会话状态,从体系结构的角度来看似乎没问题。
如果您确实必须使用用户名和密码并且无法获得一次性令牌,您可以使用服务器端密钥对其进行加密,并在将它们发送到 API 时即时解密,这样即使有人可以劫持如果没有服务器端密钥,他们无法获取用户名和密码,但是您应该更加小心,以免泄露您的 php 会话。
PHP 会话安全 https://stackoverflow.com/questions/328/php-session-security.
按照该问题的答案中概述的步骤进行操作,但您应该使用 HTTPS 进行用户与 Web 应用程序之间以及 Web 应用程序与 REST API 之间的所有交互。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)