PHP:在.ini文件中存储敏感信息是好还是坏的方法?

时间:2017-11-02 14:08:39

标签: php security ini

我对某些事感到困惑,需要一些解释。

在我的实践中,我通常会看到90%的PHP开发人员所有敏感信息,如数据库连接,FTP,SMTP设置等都存储在一些变量,数组,对象或常量中。

我想现在最好从root用户那里使用一些ini文件?或者最好通过.htaccess隐藏某处.ini文件和拒绝访问?

通常,我想以最安全的方式保存敏感数据。

2 个答案:

答案 0 :(得分:4)

没有完全安全的选择,但有些人比其他人更好。

不要在项目的源代码中保存敏感信息 - 您不希望在github上使用密码和API密钥。

将敏感信息保存在数据库中很好,但是您仍然需要在某处存储数据库凭据,并且您回到起始位置。

您可以将敏感信息保存在环境变量中。这些通常会在您的Web服务器的配置文件中设置。

将敏感信息保存在ini文件中很好,条件如下:

  • 该文件具有所需的最低权限。
  • 该文件完全位于Web服务器的文档根目录之外,因此无法直接提供。不要将文件放在主目录中,然后使用.htaccess拒绝访问它。
  • 该文件未提交给源代码管理。如果您正在使用git,请编辑.gitignore以便忽略该文件。

这些也应该不言而喻:

  • 运行Web服务器进程的用户帐户永远不应对其服务的文件具有写入权限。
  • 运行Web服务器进程的计算机上的其他非特权用户不应具有对其所服务文件的读取权限。

答案 1 :(得分:0)

对我来说,我建议将其存储在点文件这样的.env(就像Laravel所做的那样),或环境变量 INI文件中(如上所述)只要它对世界隐藏或者某些黑客攻击您的服务器,他们将无法轻易看到它或者无法访问它。