保护数据库密码

Kaj*_*aji 18 mysql security

看看我见过的大多数基于 PHP/MySQL 的网站的结构,如果你稍微挖掘一下,那么辨别数据库密码似乎并不是非常困难,因为在某个地方总是有一个设置或配置文件来存储日志信息进入数据库。除了确保我的数据库权限对远程请求进行适当限制的基本预防措施之外,我可以在自己的项目中实施哪些选项来保护这些信息?

Joe*_*Joe 10

不是关于密码存储的直接答案,但我通常在构建 web 应用程序时使用至少两个数据库连接——一个 99% 的时间用于与用户相关的活动,权限受限,另一个用于“管理员”功能(删除用户等)。

在少数情况下,我要安装其他人的软件包,我将安装两个实例……一个面向公众的实例,它只有数据库访问权限来执行一般用户类型的操作,另一个实例是 IP 限制的我的本地子网(甚至可能在不同的机器上)必须用于任何“管理员”类型的活动。但是,没有人有权修改表等……我宁愿通过本机数据库工具进入,也不愿让 webapp 运行自己的未经审查的更新任务。

不过,您可以更进一步,并专门为给定任务添加更多连接……因此,用户创建和密码管理任务通过对用户表具有额外权限的用户进行,登录具有要进行身份验证的数据库权限,除此之外别无他法, 等等。

这样,如果有 sql 注入攻击,在大多数网页上它真的不能做任何重要的事情——看不到密码哈希,不能添加新的管理员用户(不是他们能够做的)无论如何),等等。如果他们设法在您的机器上获得外壳仍然无济于事,但它会减慢他们的速度。


Yas*_*irA 7

使用一次性密码KerberosLDAP或其他任何方式来存储您的帐户数据并验证/授权用户。目录服务是存储用户信息并将其用作帐户数据后端的好方法。