我读过这篇文章:http://crackstation.net/hashing-security.htm
在密码散列的地方,它说最好在服务器中散列密码,因为如果有人窃取了散列数据库,可以在不需要密码的情况下访问用户帐户。
但是如果有人可以窃取哈希数据库,他就可以访问整个数据库,对吗?如果这是正确的,他可以访问所有数据,而不仅仅是用户信息。那么为什么他只想要部分信息呢?
发布于 2013-04-01 20:46:02
攻击者通常试图窃取数据库以访问应用程序。当然,如果数据库包含敏感信息(如信用卡号码),那么如果他窃取了数据库,则不需要访问应用程序。( PCI DSS标准解释了如何存储信用卡信息)
如果他发现了一个纯文本密码-他将能够毫无问题地访问应用程序。但是,如果数据库包含散列值,则攻击者需要找到与散列值对应的纯文本值。如果您使用像MD5或SHA1这样的弱散列算法,攻击者可以更容易地发现纯文本值。
为了获得更好的保护,建议使用强散列算法,如SHA128或SHA256。此外,强烈建议每个用户使用不同的盐值。(提示:将值存储在未调用salt的列中,例如userhint)
总评:在安全方面,你应该尽可能多地保护。保护您的应用程序不受SQL注入的影响,以防止在数据库被盗的情况下窃取您散列/加密敏感的数据库https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet:data https://www.owasp.org/index.php/Top_10_2013-A6-Sensitive_Data_Exposure
https://stackoverflow.com/questions/15742946
复制相似问题