应用程序还没有完成,现在密码和数据库信息只是在数据库中加密,并在应用程序上使用密钥解密。
但我在想,如果我可以将数据库信息保存在加密表中,每个用户数据库组合都有一个条目,并且这些信息使用散列用户密码作为盐进行加密(与用户表中的散列不同,当然)。因此,如果攻击者以某种方式设法获得数据库或应用程序,它仍然无法读取所有数据库密码,因为它需要有权访问此类数据库的用户的密码。
我的想法是,当用户登录时,他的密码被散列(如在数据库盐中),并保存为寿命短的 cookie,以便在用户连接时使用它。
尽管我在想,如果攻击者在我的应用程序上获得执行权,他仍然可以通过每个请求访问已连接用户的 cookie。
另一个缺点是用户无法重置密码,因为如果他这样做了,他就无法解密密码以访问数据库。
那么,您对此有何看法?这是一个好方法吗?你会怎么做?