【问题标题】:Where to safely store database credentials within a PHP website [closed]在 PHP 网站中安全存储数据库凭据的位置 [关闭]
【发布时间】:2015-12-07 10:12:36
【问题描述】:

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

【问题讨论】:

  • 您是指用于与 mysql 服务器通信的脚本凭据还是用户密码,例如,在数据库中散列?
  • 与数据库通信的凭据,对不起

标签: php mysql security


【解决方案1】:

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

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

在这里查看更多信息:How to secure database passwords in PHP?

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

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

【讨论】:

  • 如您所说,您如何采取适当的开发预防措施。帮助 OP 理解这一点。让它成为你答案的一部分
  • 托管服务通常允许共享计划中 Web 根目录之外的文件夹吗?抱歉,这超出了问题的范围,但我对托管计划没有太多经验。顺便谢谢你的回答!
  • @scarecrow850 我不确定。我总是使用 VPS,但如果您使用的是 godaddy 或 ipage 之类的服务,则不太可能。在这种情况下,看看使用 .htaccess 来阻止某些文件被查看
  • 我打算使用 HostGator 进行托管,但我只能做基本的托管计划,是否存在 .htaccess 方法失败且不阻止它的风险?
  • 感谢您的帮助,不胜感激! :)
猜你喜欢
  • 1970-01-01
  • 2012-06-05
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多