Php 请问,在进入我的服务器提供商mysql之前,我需要保护密码吗
我目前正在设计一个小型社交网站,在我进行研究时遇到“密码散列”。我在一个托管网站上托管了该网站,因此,我不知道保护用户密码是我的工作,还是他们的工作是保护他们的数据库。如果你不明白我的问题,请提问,这样我可以解释 如果您使用的是一个流行的托管网站,比如godaddy.com,它们确实提供了保护,但这只有在您自己编写的代码是“安全的”时才重要。例如,如果您访问存储密码的数据库的代码允许sql注入,那么无论托管站点本身多么不可攻击,您都会为黑客提供一个后门 你的问题涉及面很广,我们没有太多的细节来作为回答的基础。简短回答:两者都有 保护数据库是他们和你的工作。你应该为你们中的一个或两个在这方面失败做好计划 访问控制 保护数据库的工作从您可以管理的内容开始:您使用的凭据,包括您和您正在制作的应用程序 提供任何类型的“特权访问”的所有内容都应该设置为需要登录,并且应该包含强密码(我建议使用随机密码生成器和/或密码管理器)。这可能包括但不限于:Php 请问,在进入我的服务器提供商mysql之前,我需要保护密码吗,php,database,security,Php,Database,Security,我目前正在设计一个小型社交网站,在我进行研究时遇到“密码散列”。我在一个托管网站上托管了该网站,因此,我不知道保护用户密码是我的工作,还是他们的工作是保护他们的数据库。如果你不明白我的问题,请提问,这样我可以解释 如果您使用的是一个流行的托管网站,比如godaddy.com,它们确实提供了保护,但这只有在您自己编写的代码是“安全的”时才重要。例如,如果您访问存储密码的数据库的代码允许sql注入,那么无论托管站点本身多么不可攻击,您都会为黑客提供一个后门 你的问题涉及面很广,我们没有太多的细节来作
- 您和应用程序的数据库登录
- FTP
- SSH(考虑为此进行基于密钥的身份验证)
- 你正在建立的网站上的管理员帐户
<强>强烈考虑使用参数化查询或ORM.<强> < /P> 如果每次编写查询时都依赖转义参数,则需要零错误才能确保数据库的安全。一个错误就可能造成严重后果
使用参数化查询或ORM可以为您解决这一问题,因此您无需担心,因此不太可能存在SQL注入漏洞 在构建应用程序时,您还需要遵循其他最佳安全实践—例如,即使不存在SQL注入漏洞,远程代码执行漏洞也可能导致数据库访问 不管怎么说,计划一次突破 考虑到常见的SQL注入漏洞,最好的做法是尽量减轻其后果。这就是密码散列的用武之地 简要概述:目标是让攻击者在数据库中存储数据的情况下非常耗时地确定密码。最好的选择是bcrypt和scrypt。你想要的东西是安全的,非常仔细的,特别是:慢 避免快速的事情,如MD5和SHA系列 附录:如果您管理数据库服务器 在共享主机安排中,主机为您运行数据库服务器。如果您正在管理它,例如,如果您必须下载并安装数据库服务器应用程序,那么您还有一些额外的工作要做您需要使数据库的软件以及服务器上的所有软件(包括操作系统)保持最新,以确保您拥有最新的安全补丁。您必须阅读服务条款(您将看到这是您的工作…)@fusion3k,是不是它们不提供任何保护,所以我可能也容易受到主机提供商的攻击?我认为它提供了一些保护。您可以通过阅读您的托管普通功能和服务条款来发现它。顺便说一句,您的脚本易受攻击(SQL注入,即),您的数据将易受攻击,与宿主功能无关。哈希密码和使用准备好的语句总是一个不错的选择。@fusion3k,非常感谢您的提示。我正在使用一个本地托管网站smartweb.com。我在这个网站上找到了很多帖子和答案,试图阻止注射。比如转义输入、引用、用mysqli_real_escape_字符串转义等等。所以,我认为我的代码是安全的。感谢您的提示,尽管我的评分很低。@stepinext我还建议使用
htmlspecialchars()
这可能是防止sql注入的最佳功能。