PHP 变量的安全风险


Security risk of PHP variables

我正在构建的页面与另一个系统的java api交互,以通过命令行检索数据。这是从 PHP 触发的,但每次调用都需要发送有效的用户名和密码。

我不想将用户名和密码存储在文件或cookie中,因为我认为没有办法安全地这样做。但是,我也不想让我的用户多次输入其凭据。

我建议做的是询问一次用户名和密码,并将它们存储在我的 php 的全局变量中,使用include来确保所有其他 php 文件都可以访问它们。

我的问题是,这样做是否安全,或者有人能够查看变量的状态并发现用户名和密码?

您必须使用会话。HTTP 是一种无状态协议。如果您有多个客户端的多个请求,并且您希望使其有状态(记住谁在请求),则需要使用基于会话的解决方案:将会话 ID 放在客户端系统上的 cookie 中,在每个请求时将此 cookie 发送到您的应用程序,并找出哪些数据与此会话 ID 相关联。

我知道您想避免在 cookie 中"存储用户名和密码"。但我不确定您是否知道在 php 管理的基于会话的解决方案中,您的会话数据在 cookie 中是不安全的。它们无法在整个 cookie 中读出。事实上,只有会话 ID 保存在 cookie 中。然后,您的服务器管理会话 ID 和 $_SESSION 中的所有数据(仅保存在服务器端!)之间的引用 - 您的用户无法猜测将哪种数据放入他的会话中,因为他读出了 cookie 值。

这里唯一的安全风险是会话劫持:另一个人可能会试图窃取您的客户cookie来接管他的会话。但是有针对这种情况的解决方案,只需检查它们,您将拥有一个基于会话的安全解决方案。

请记住:如果涉及到安全性,请始终尝试首选经过验证的设计模式,而不是开发自己的东西。

变量只会在脚本运行时"设置",在脚本运行后,它们将是它们设置为默认值的值。即。如果您重新加载页面,"存储的数据"将消失。

看看会议,可能是最好的解决方案。