我想在一个文件中保留webapp的所有配置选项。 (pathes,密码,由php读取的选项,sass(编译期间),也许是咕噜声,...)
我喜欢JSON格式,因为它非常清晰,几乎任何东西都可以解析json。但默认情况下,可以下载.json文件。
我可以通过为文件提供.json.php
扩展名来安全地阻止这种情况吗?
有什么缺点?更好的方法?
答案 0 :(得分:2)
为了防止文件被下载,通常的方法是将其存储在Web服务器不提供的目录中。我不知道您的设置是什么,但假设是Apache设置,例如,如果您的.php
文件是从目录/home/user/htdocs
提供的,则可以创建目录{{ 1}},确保网络服务器可以读取它,并将/home/user/config
文件存储在那里。
另一种假设Apache的方法是创建一个包含以下内容的.json
文件(受this answer启发):
.htaccess
这不仅会阻止下载目录中的所有RedirectMatch 404 \.json$
个文件,还会隐藏它们的存在。
通过存储.json
扩展名的文件, 可能可以按照您的建议进行操作,尽管这不是推荐的方法。为了实现这一点,文件必须是有效的PHP,但它显然必须是有效的JSON,并且我们在某种程度上受到JSON不允许注释这一事实的阻碍。类似下面的内容会在文件启动后立即停止PHP解释器,然后泄露您的秘密:
.json.php