PHP变量的安全风险

PHP变量的安全风险,php,security,Php,Security,我正在构建的页面与另一个系统的JavaAPI交互,通过命令行检索数据。这是从PHP触发的,但每次调用都需要发送有效的用户名和密码 我不想将用户名和密码存储在文件或cookie中,因为我认为没有安全的方法。但是,我也不想让我的用户多次输入他们的凭据 我建议做的是询问用户名和密码一次,并将它们存储在php中的全局变量中,使用include确保所有其他php文件都可以访问它们 我的问题是,这样做安全吗,或者有人能够查看变量的状态并发现用户名和密码吗?这些变量只会在脚本运行时“设置”,在脚本运行后,它们

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

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

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


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

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


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

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

我知道你想避免在cookie中“存储用户名和密码”。但我不能绝对肯定您是否知道,在基于php管理的会话解决方案中,您的会话数据在cookie中不安全。它们不能在整个cookie中被读出。实际上,只有会话id保存在cookie中。然后,您的服务器管理会话id和
$\u会话中所有数据之间的引用(这些数据仅保存在服务器端!)-您的用户无法猜测将什么类型的数据放入其会话,因为他读取了cookie值

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


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

只需将这些值存储在服务器上的文本文件中,并最终将其加密存储并比较加密值即可。@Virus OP需要将它们发送给第三方应用程序。她可以将它们加密,但很可能需要将它们加密。会话在这个场景中是有用的。我确实考虑了会话,但是它们将数据存储在cookie中,这些cookie通过浏览器很容易访问-而不是我真正想要的。但是,如果它必须是服务器端的,请将其存储在任何类型的数据库中,并在每次需要时加载它。