在PHP网站中安全存储数据库凭据的位置

在PHP网站中安全存储数据库凭据的位置,php,mysql,security,Php,Mysql,Security,我正在开发一个网站,最终将连接到mySQL数据库。我的问题是,我如何安全地存储这些凭据,以便在我的PHP站点中访问该数据库,而不会有被服务器(例如,服务器将PHP作为普通文本返回)意外破坏的风险?感谢您的帮助,谢谢!:) 解决此问题的常见做法包括将数据库凭据放入非PHP的配置文件(如.ini文件)中,然后使用PHP读取该文件。为了增加额外的安全性,您还应该将配置文件放在web根目录之外,这样您就可以确保没有人可以通过直接导航到该文件来访问该文件 例如,Laravel框架(以及其他框架)在/pub

我正在开发一个网站,最终将连接到mySQL数据库。我的问题是,我如何安全地存储这些凭据,以便在我的PHP站点中访问该数据库,而不会有被服务器(例如,服务器将PHP作为普通文本返回)意外破坏的风险?感谢您的帮助,谢谢!:)

解决此问题的常见做法包括将数据库凭据放入非PHP的配置文件(如.ini文件)中,然后使用PHP读取该文件。为了增加额外的安全性,您还应该将配置文件放在web根目录之外,这样您就可以确保没有人可以通过直接导航到该文件来访问该文件

例如,Laravel框架(以及其他框架)在/public目录中定义web根目录,而在该目录之外是一个
.env
文件,其中包含数据库凭据和其他设置

有关更多信息,请查看此处:

但更重要的是,您永远不必担心PHP被当作纯文本使用。采取适当的开发预防措施,确保不会发生这种情况。一些起点是:

  • 确保你已经安装了PHP
  • 确保正确打开和关闭标签
  • 确保您的文件扩展名是
    .php
    ,而不是
    .html
    (除非您使用)
  • 还要确保在生产代码中没有在页面(ini)上显示错误

您是指用于与mysql服务器通信的脚本凭据,还是指用户密码(例如,散列在数据库中的密码)?与数据库通信的凭据,或者说,您如何采取适当的开发预防措施。帮助OP了解这一点。只是让它成为你的answerDo托管服务的一部分,通常允许在共享计划的web根目录之外有一个文件夹?抱歉,如果这有点超出了问题的范围,但我没有很多托管计划的经验。顺便说一下,谢谢你的回答@稻草人:我不确定。我总是使用VPS,但如果您使用的是像godaddy或ipage这样的服务,则不太可能。在这种情况下,请看一下使用.htaccess阻止某些文件被查看。我计划使用HostGator进行托管,但我只能执行基本的托管计划。是否存在.htaccess方法失败而无法阻止的风险?谢谢您的帮助,我非常感谢!)