我正在创建一个类似于 phpmyadmin(数据库管理 UI)的应用程序。用户需要根据数据库对自己进行身份验证,并且应用程序需要以某种方式存储凭据。SSL 不是所有安装的选项。
- 想法 1:用户发送凭据,应用程序存储用户名并使用预定义的 Blowfish 密钥 (config.ini.php) 加密密码 - 这就是 phpMyAdmin 所做的。
- 想法2:登录表单创建随机的blowfish密码(javascript),用户发送登录凭据,应用程序加密用户/密码并将它们存储在会话中的服务器端,密钥存储在cookie中并为每个请求发送。
想法 1:如果服务器安全受到破坏,就会出现问题。(密钥在配置中,会话数据在 /tmp 中)
想法 2:中间人攻击的问题。(发送密钥+凭据)
还有其他建议吗?批评?