随着最近所有的黑客攻击和泄漏等等,我一直在思考这个问题。(几乎)不可能锁定整个应用程序以确保没有 SQL 注入点或任何其他可能导致数据库泄露的攻击。
但是,如果应用程序非常、非常小并且非常非常简单,那么审计 SQL 注入的应用程序将非常容易。可以将密码存储在一个完全独立的数据库中,除非通过 API,否则根本无法访问它。这个 API 会说,三个方法:check_password、add_password、change_password。
这样,当(如果你是一个足够大的目标)有人想出一种方法通过你的 web 应用程序中的一些安全漏洞来转储你的数据库时,他们仍然没有你的密码哈希。
想到这个想法似乎很明显,但我在其他任何地方都没有找到任何参考,所以我的问题是:为什么我们不应该这样做?