自动登录用户到PHPMyAdmin

Rob*_*inJ 5 php phpmyadmin

我正在为我们的组织编写一个虚拟主机控制面板,并希望能够自动将用户登录到phpMyAdmin。

  1. 用户登录到控制面板
  2. 用户单击“管理数据库”
  3. 用户被重定向到PHPMyAdmin并自动登录

最好的方法是什么?

当然,我们不希望将用户的控制面板帐户密码以纯文本格式保存在数据库中。

Unn*_*wut 3

我认为在不知道一组用户名和密码的情况下没有办法做到这一点。最后 phpMyAdmin 只是将会话连接到数据库的中间件。

据我所知,phpMyAdmin本身甚至没有自己的用户表。它基本上尝试使用您提供的凭据登录数据库。如果成功,它会将您的凭据存储在 cookie 中,尽管它们是加密的。这就是为什么 phpMyAdmin 要求在您的配置文件中提供Blowfish机密,以安全地存储您的凭据。

最接近您想要的实际上内置于 phpMyAdmin,请参阅http://wiki.phpmyadmin.net/pma/Auth_types on Single Sign-on。

auth_type Signon 是一项允许 phpMyAdmin 与单点登录 (SSO) 系统集成的功能。管理员可以将其 phpMyAdmin 安装配置为从现有 SSO 会话获取 MySQL 用户名和密码,例如,允许用户登录一次控制面板,然后在 phpMyAdmin 等应用程序之间切换,而无需再次登录。

对我来说,我会为每个用户帐户创建一个新用户,例如名为 的用户foo可能有一个名为 的仅 SSO 帐户foo_mysql。然后将foo_mysql其密码(加密)存储到您的数据库中。当您的用户尝试从管理门户访问 phpMyAdmin 时,您可以使用“signon”身份验证类型设置来登录他们,如http://wiki.phpmyadmin.net/pma/Auth_types#signon中所述中所述。

更安全的方法(但我仍然有自己的疑问)可能是仅在需要时创建临时的仅 SSO 帐户。例如,foo_4f65ca1d每次用户请求从管理门户访问 phpMyAdmin 时,都会生成一个新的随机数。然后将新凭据发送到 phpMyAdmin。

一旦您将其传递给 phpMyAdmin,phpMyAdmin 就会以通常的 phpMyAdmin 方式管理凭据。当用户从您的门户注销时,删除临时用户。或者设置一个计划任务,在设定的时间段(可能与 phpMyAdmin 会话长度同步的时间段)后删除它们。

这样,帐户本身的行为就非常类似于用户会话。您甚至不必将这些凭据(纯文本或加密形式)存储在数据库中。

我不是这里的安全专家,但我希望这可以引发一些讨论或其他一些更安全的解决方案。