请进入我的服务器提供程序mysql之前是否需要保护密码

时间:2016-04-19 23:08:36

标签: php database security

我正在设计一个小社交社区网站,然后在我进行研究时遇到"密码哈希" 。我在托管网站上托管了该网站,因此,我不知道保护我的用户是否是我的工作。密码或他们的工作是保护他们的数据库。如果你不理解我的问题,请问我能解释一下。

2 个答案:

答案 0 :(得分:2)

简短回答:两者都有。

保护数据库既是他们的工作,也是他们的工作。你应该计划你们中的一方或双方都失败了。

访问控制

保护数据库的工作始于您可以管理的内容:您使用的凭据,包括您和您正在制作的应用程序。

提供任何类型的特权访问的所有内容"应设置为需要登录,并且应该包含强密码(我建议使用随机密码生成器和/或密码管理器)。这可能包括但不限于:

  • 数据库登录,包括您和您的应用程序
  • FTP
  • SSH(考虑查看基于密钥的身份验证)
  • 您正在构建的网站上的管理员帐户

数据库应该要求连接密码,密码应该很强(我建议使用随机密码生成器)。对于服务器本身的所有登录也是如此,这可能包括FTP和SSH之类的内容,也适用于您正在构建的应用程序(例如管理员帐户)的任何登录,以及其他应用程序,例如PHP My管理员。

应用程序安全性

您作为应用程序开发人员的角色是保护与数据库联系的应用程序。从保护数据库的角度来看,您最担心的是SQL注入。你提到你已经熟悉了这一点,所以我将跳过基础知识。

强烈考虑使用参数化查询或ORM。

如果您在每次编写查询时都依赖于转义参数,则需要为数据库设置零错误以确保安全。一个错误可能会产生严重后果。

使用参数化查询或ORM可以为您解决此问题,因此您不必担心它,因此不太可能出现SQL注入漏洞。

构建应用程序时,您还需要遵循其他最佳安全实践 - 例如,即使没有SQL注入漏洞,远程代码执行漏洞也可能导致数据库访问。

无论如何计划违规

考虑到SQL注入漏洞的常见程度,尝试尽可能减轻其后果的最佳做法。这就是密码哈希的用武之地。

简要总结:目标是让攻击者在给定数据库中存储的数据时确定密码非常耗时。对此最好的选择是像bcrypt和scrypt这样的东西。你想要的东西是安全的,非常好的scrutizined,特别是:慢。

避免使用诸如MD5和SHA系列之类的快速内容。

附录:如果您管理数据库服务器

在共享主机安排中,主机正在为您运行数据库服务器。如果您正在管理它 - 例如,如果您必须下载并安装数据库服务器应用程序 - 那么您还需要做一些额外的工作。

您需要保留数据库的软件 - 实际上服务器上的所有软件(包括操作系统)都是最新的,以确保您拥有最新的安全补丁。

答案 1 :(得分:-2)

如果您使用的是热门的托管网站,例如godaddy.com,它们确实提供了保护,但这只有在您自己编写“安全”的代码时才有意义。例如,如果访问存储密码的数据库的代码允许sql注入,那么无论托管站点本身多么难以置信,您都可以为黑客使用后门。

您的问题很广泛,我们没有太多具体细节可以作为我们的答案。