【问题标题】:Configuration files : JS vs INI [closed]配置文件:JS vs INI [关闭]
【发布时间】:2015-12-16 15:48:35
【问题描述】:

我需要为正在开发的应用程序实现配置文件。

我想知道使用 INI 文件还是 JS 文件(JSON 数据)更好 用于配置文件。

有哪些安全问题?是否可以将文件权限设置为用户无法通过浏览器检索但php可以读取它们的js文件?

【问题讨论】:

  • 您知道两者都只是纯文本文件吧?两者都与服务器的安全性无关 - 这是您配置用户/组权限的方式以及文件是否在 docroot 下可用。
  • .json.ini 更灵活,受到广泛支持,.ini 受到限制,但自定义扩展为 .ini 格式除外。然而,对于简单的硬币造型 ..ini 似乎很好。都是文本格式,安全性没有区别,除非你想要加密的配置文件,而不是纯文本
  • 配置文件可能包含敏感信息。只是公开显示是一个安全问题。

标签: javascript php json security ini


【解决方案1】:

处理这种配置的最佳方法是将其保存在您的公共目录之外,这样用户将无法访问它。

通常在 Web 应用程序中,您有 Web 可访问的目录。例如:Symfony 2.x 中的 web/ 和 Laravel 4/5 中的 public/。在这些文件夹中,您通常会找到用户在访问您的网站时运行的 index.php 文件。如果您将文件移出此文件夹 - (cd ..) - 到您的应用程序根目录中,您可能会在其中看到类似 vendor/ 的目录,那么您可以在这里存储普通用户无法仅使用某些链接下载的文件文件。

关于文件扩展名。实际上,最近以“点”格式命名配置文件变得非常流行。例如:production.my_config 这不仅可以防止用户意外下载文件(因为点文件通常无法访问),而且还可以让您的配置文件不受 git 等版本控制软件的影响,因此您的密码不会出现在 github 上。

【讨论】:

  • 关于 GitHub 的好点子 - 我还很老,可以在本地临时服务器上使用 SVN,所以我什至没有想到这种可能性:|
  • @CD001,发生了。 SVN 也会跟踪这些?
  • SVN 的最坏情况是配置文件中的密码位于办公室的本地临时服务器上 - 未上传到 GitHub 云。它会很高兴地同步你的 .htpasswd.htaccess 文件,所以我不认为 .config 会分阶段 - 你必须手动将它们从版本控制中删除。
  • 不是很好。推动切换到 git :)
  • 问题是如果我配置 .htaccess 来限制对 dot 文件的访问,即使 php 也无法访问它们。
猜你喜欢
  • 1970-01-01
  • 2020-01-09
  • 1970-01-01
  • 2017-05-04
  • 2020-08-08
  • 2022-01-14
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多