Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 数据库中密码的安全性问题_Database_Security_Passwords - Fatal编程技术网

Database 数据库中密码的安全性问题

Database 数据库中密码的安全性问题,database,security,passwords,Database,Security,Passwords,我读过这篇文章: 在对密码进行散列的部分,它说最好在服务器中对密码进行散列,因为如果有人偷了散列数据库,则无需密码即可访问用户帐户 但是如果有人可以窃取散列数据库,他可以访问整个数据库,对吗?如果这是正确的,他可以访问所有数据,而不仅仅是用户信息。那么,为什么他只需要部分信息呢?攻击者通常会试图窃取数据库以访问应用程序。 当然,如果数据库包含敏感信息(如信用卡号),那么如果他窃取了数据库,他就不需要访问应用程序。 (PCI DSS标准说明了如何存储信用卡信息) 如果他找到了纯文本密码,他将能够毫

我读过这篇文章:

在对密码进行散列的部分,它说最好在服务器中对密码进行散列,因为如果有人偷了散列数据库,则无需密码即可访问用户帐户


但是如果有人可以窃取散列数据库,他可以访问整个数据库,对吗?如果这是正确的,他可以访问所有数据,而不仅仅是用户信息。那么,为什么他只需要部分信息呢?

攻击者通常会试图窃取数据库以访问应用程序。 当然,如果数据库包含敏感信息(如信用卡号),那么如果他窃取了数据库,他就不需要访问应用程序。 (PCI DSS标准说明了如何存储信用卡信息)

如果他找到了纯文本密码,他将能够毫无问题地访问应用程序。 但是,如果数据库包含哈希值,攻击者需要找到与哈希值对应的纯文本值。 如果使用MD5或SHA1等弱散列算法,攻击者可以更容易地对纯文本值进行罚款

为了更好地保护,建议使用强哈希算法,如SHA128或SHA256。 此外,强烈建议为每个用户使用不同的盐值。 (提示:将值存储在未调用salt的列中,例如userhint)

一般评论:在安全方面,你应该尽可能多地保护自己。 保护应用程序不受SQL注入的影响,以防止数据库被盗
如果数据库被盗,您可以对敏感数据进行哈希/加密:数据

是的,但我认为应用程序的基本功能是以友好的方式访问数据库。因此,如果有人可以绕过登录应用程序的需要,因为他们可以访问数据库,那么为什么试图窃取信息的人会想要使用该应用程序?例如,在线商店应用程序。在这种情况下,如果攻击者访问数据库,他将无法做很多事情。但是,如果他能够登录并代表受害者命令一名工作人员到他的地址,那就不好了。如果您需要其他解释,请发表评论。并非密码是攻击者可能关心的全部——但与其他数据不同,密码可以通过仅以比较形式(如单向散列)而非原始形式提供来保护;然而,与大多数其他字段相比,它们需要读回,而不仅仅是比较。因此,密码可以以其他内容无法保护的方式进行保护。如果我的答案回答了您的问题,您可以接受并提升我的答案:)