yaml、xml 或注释存储相关信息的安全性如何?

How safe are yaml, xml or annotations to store relevant information?

我通常在 PHP 中编写代码,我在许多应用程序中看到一些配置文件带有一堆常量和相关信息,例如密码、电子邮件地址、服务器或其他机器的 ip。 .隐藏在树文件夹中(或隐藏得不多)。

Wordpress 的 wp-config.php 文件就是一个很好的例子。

我想知道将这些信息保存在其他文件格式甚至数据库中是否更安全。

像某些框架(如 Symfony)那样使用 yaml、xml 或注释有什么优势吗?

本质上,这些方法的安全性不亚于其他方法。我会说你使用什么存储机制主要是个人偏好。

需要牢记的一些事情(不在我的脑海中):

  1. 保持一致 - 为配置选择一种存储机制并将其用于所有配置。
  2. 确保文件存储在网络根目录之外,或适当配置服务器,例如通过 .htaccess 文件,因此无法在浏览器中读取它们。
  3. 确保使用适当的权限,尤其是在共享主机环境中。您不希望其他用户能够读取您的配置文件。
  4. 如果您不在 PHP 中存储配置,您可能最终会序列化并缓存它们。
  5. (2) 和 (3) 也适用于任何缓存配置。

关于安全:mario 和 PiranhaGeorge 所说的(这取决于位置,浏览器不应访问该位置)

关于配置文件的使用:请记住,在访问更复杂的存储设施之前,您绝对需要先了解一些信息。例如,您需要具有数据库访问参数或加密文件的解密信息。 有一些设置 必须在应用程序启动时知道 并且在运行时不能(轻易)更改。除了 db 访问参数之外的另一个示例可能是包含插件目录的路径。 这些信息必须在不先启动应用程序的情况下更改。

理想情况下,您需要一种机器(例如 PHP 解释器)和管理员都能轻松理解的格式。机器需要花费尽可能少的时间来加载配置,管理员需要一种以简单方式更改应用程序参数的方法(想想 SSH 和 vi 或其他 bash 智能编辑器 phone ,如果有紧急情况),例如需要在生产和测试数据库之间切换。