webapp 的安全通用配置文件

Safe general config file for webapp

我想将 webapp 的所有配置选项保存在一个文件中。 (由 php、sass(编译期间)读取的路径、密码、选项,也许是 grunt,..)

我喜欢 JSON 格式,因为它非常清晰,几乎任何东西都可以解析 json。但是默认可以下载.json个文件。

我可以通过给文件一个 .json.php 扩展名来安全地防止这种情况发生吗?

有什么缺点?更好的方法?

要防止文件被下载,通常的做法是将其存储在网络服务器不提供服务的目录中。我不知道你在什么设置中,但假设一个 Apache 设置,例如,如果你的 .php 文件是从目录 /home/user/htdocs 提供的,你可以创建一个目录 /home/user/config,确保它可以被网络服务器读取,并将 .json 文件存储在那里。

另一种方法,再次假设 Apache,将创建一个包含以下内容的 .htaccess 文件(受 this answer 启发):

RedirectMatch 404 \.json$ 

这不仅会阻止下载目录中的任何和所有 .json 文件,而且会隐藏它们的存在。

可能 只是 可以按照您建议的方式进行操作,即通过使用 .json.php 扩展名存储文件,尽管这不是推荐的方法。为此,该文件必须是有效的 PHP,但显然它也必须是有效的 JSON,而且 JSON 不允许注释这一事实让我们有些受阻。像下面这样的东西会在文件开始后不久停止 PHP 解释器,然后再泄露你的秘密:

{
  "<?php exit('Access denied'); ?>": null,
  "password": "secret"
}