我通常使用PHP代码,并且在许多应用程序中看到一些配置文件,其中包含相关信息(如密码,电子邮件地址,服务器或其他机器的IP)的一些常量...隐藏在树文件夹中或者不那么隐藏)。yaml,xml或注释存储相关信息有多安全?
一个很好的例子就是Wordpress的wp-config.php文件。
我想知道是否更安全,以保存此信息在其他文件格式,甚至在数据库中。
使用yaml,xml或像某些框架(比如Symfony)的注释是否有优势吗?
我通常使用PHP代码,并且在许多应用程序中看到一些配置文件,其中包含相关信息(如密码,电子邮件地址,服务器或其他机器的IP)的一些常量...隐藏在树文件夹中或者不那么隐藏)。yaml,xml或注释存储相关信息有多安全?
一个很好的例子就是Wordpress的wp-config.php文件。
我想知道是否更安全,以保存此信息在其他文件格式,甚至在数据库中。
使用yaml,xml或像某些框架(比如Symfony)的注释是否有优势吗?
关于安全:什么马里奥和PiranhaGeorge说(这取决于位置,locatiion不应该是通过浏览器访问)
关于使用配置文件:记住,你绝对首先需要一些信息,然后才能访问更复杂的存储设施。例如,您需要拥有数据库访问参数或解密加密文件的信息。 有几个设置必须知道在应用程序的开始,并且不能(很容易)在运行时更改。除db访问参数以外的另一个示例可以包含插件目录的路径。 这些信息必须先更改才能启动应用程序。
理想情况下,您需要一种容易被机器(例如PHP解释器)和管理员理解的格式。机器需要花费尽可能少的时间来加载配置,管理员需要以一种简单的方式更改应用程序参数(例如,如果出现紧急情况,请考虑使用SSH和vi或智能手机上的其他bash编辑器),例如,如果需要在生产和测试数据库之间切换。
这很有趣,当然我需要保留一些数据,比如数据库访问等等on,但是在这种情况下,yaml,xml,annotations,php还是纯文本都有区别? – SpongePablo
这是真正达到个人喜好的境界。我认为如果你使用的语法是已经有语法分析器构建的格式,或者可以作为标准扩展使用,那就更好了。所以yaml,php构造等都可以,xml是可以的,但经常是过度的(并且有相当的开销)。只要选项不太复杂,纯文本就可以。不确定注释,我还没有看过Symfony中的实现 - 我的猜测是他们选择了这种格式,以便IDE可以使用它 – cypherabe
本质上,这些方法的安全性不低于彼此。我会说这大多是个人喜好你使用的存储机制。
有些事情要裸记(把我的头顶部):
“安全”取决于这些配置文件的位置(如docroot之外)。使用YAML /等。已经变得流行起来,因为它避免了在config.php和数据库表之间的中间设置。 – mario
在我看来,这不是一个基于意见的问题,我只是问yaml,xml和注释之间存在什么区别来存储相关配置数据 – SpongePablo