2015-06-23 80 views
0

我通常使用PHP代码,并且在许多应用程序中看到一些配置文件,其中包含相关信息(如密码,电子邮件地址,服务器或其他机器的IP)的一些常量...隐藏在树文件夹中或者不那么隐藏)。yaml,xml或注释存储相关信息有多安全?

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

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

使用yaml,xml或像某些框架(比如Symfony)的注释是否有优势吗?

+0

“安全”取决于这些配置文件的位置(如docroot之外)。使用YAML /等。已经变得流行起来,因为它避免了在config.php和数据库表之间的中间设置。 – mario

+0

在我看来,这不是一个基于意见的问题,我只是问yaml,xml和注释之间存在什么区别来存储相关配置数据 – SpongePablo

回答

1

关于安全:什么马里奥和PiranhaGeorge说(这取决于位置,locatiion不应该是通过浏览器访问)

关于使用配置文件:记住,你绝对首先需要一些信息,然后才能访问更复杂的存储设施。例如,您需要拥有数据库访问参数或解密加密文件的信息。 有几个设置必须知道在应用程序的开始,并且不能(很容易)在运行时更改。除db访问参数以外的另一个示例可以包含插件目录的路径。 这些信息必须先更改才能启动应用程序。

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

+0

这很有趣,当然我需要保留一些数据,比如数据库访问等等on,但是在这种情况下,yaml,xml,annotations,php还是纯文本都有区别? – SpongePablo

+1

这是真正达到个人喜好的境界。我认为如果你使用的语法是已经有语法分析器构建的格式,或者可以作为标准扩展使用,那就更好了。所以yaml,php构造等都可以,xml是可以的,但经常是过度的(并且有相当的开销)。只要选项不太复杂,纯文本就可以。不确定注释,我还没有看过Symfony中的实现 - 我的猜测是他们选择了这种格式,以便IDE可以使用它 – cypherabe

0

本质上,这些方法的安全性不低于彼此。我会说这大多是个人喜好你使用的存储机制。

有些事情要裸记(把我的头顶部):

  1. 是一致的 - 挑一个存储机制进行配置和使用它的所有配置。
  2. 确保文件存储在Web根目录之外,或者正确配置服务器,例如,通过.htaccess文件,所以他们不能在浏览器中读取。
  3. 确保使用适当的权限,特别是在共享主机环境中。您不希望其他用户能够读取您的配置文件。
  4. 如果你没有在PHP中存储配置,那么你最终可能会终止序列化和缓存它们。
  5. (2)和(3)也适用于任何缓存配置。