Passwords 为什么我们要将密码散列存储在与应用程序数据相同的数据库中?(或者:我们有没有理由不将它们存储在其他数据库中?)

Passwords 为什么我们要将密码散列存储在与应用程序数据相同的数据库中?(或者:我们有没有理由不将它们存储在其他数据库中?),passwords,Passwords,最近有这么多黑客和泄密之类的事情,我一直在思考这个问题。要锁定整个应用程序以确保没有SQL注入点或任何其他可能导致数据库泄漏的攻击,几乎是不可能的 然而,如果一个SQL注入应用程序非常、非常小且非常、非常简单,那么审计它将非常容易。人们可以将密码存储在一个完全独立的数据库中,除了通过API之外,根本无法访问它。这个API有三种方法:检查密码、添加密码、更改密码 这样,当有人想出一种方法通过web应用程序中的某些安全漏洞转储您的数据库时(而不是当您是一个足够大的目标时),他们仍然没有您的密码哈希

最近有这么多黑客和泄密之类的事情,我一直在思考这个问题。要锁定整个应用程序以确保没有SQL注入点或任何其他可能导致数据库泄漏的攻击,几乎是不可能的

然而,如果一个SQL注入应用程序非常、非常小且非常、非常简单,那么审计它将非常容易。人们可以将密码存储在一个完全独立的数据库中,除了通过API之外,根本无法访问它。这个API有三种方法:检查密码、添加密码、更改密码

这样,当有人想出一种方法通过web应用程序中的某些安全漏洞转储您的数据库时(而不是当您是一个足够大的目标时),他们仍然没有您的密码哈希


考虑到这个想法,这似乎是显而易见的,但我在其他任何地方都找不到任何引用,所以我的问题是:为什么我们不这样做?

你在哪里存储密码数据库的密码?

你所说的密码是什么意思?数据库的密码将存储在API服务器的配置中。API本身可能没有密码(可能只是通过防火墙联合访问)。