0

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

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

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

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

4

2 回答 2

1

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

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

于 2013-09-10T13:54:03.283 回答
1

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

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

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

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

于 2013-09-10T14:15:08.773 回答