gpt4 book ai didi

security - cgi-bin 目录内容 : What else can be stored there, 除了 CGI 脚本/可执行文件?

转载 作者:行者123 更新时间:2023-12-05 03:16:02 25 4
gpt4 key购买 nike

哪些文件应该/不应该存储在 Web 服务器上的 cgi-bin 文件夹/目录中?

显然,构成网络应用程序的可执行脚本/文件(从网络浏览器调用)可以存储在那里。

但是对于那里还可以存储什么,是否有一个共同的行业意见?

除了脚本/可执行文件之外什么都不允许在那里有一个非常充分的理由吗?

我的偏好是将属于应用程序的所有文件存储在 cgi-bin 目录/文件夹中,作为它的子文件夹 - 对于每个应用程序。

例如目录 cgi-bin/myapplication 将包含:

  • cgi 脚本/可执行文件
  • 数据文件
  • 配置文件

这简化了安装,也简化了并行运行不同版本应用程序的步骤,例如用于试用新版本。

通过使用正确的用户权限和 Apache .htaccess 来控制对目录和文件的访问,可以解决对非脚本文件的安全访问问题。

似乎流行的免费应用程序支持这种将所有内容都放在一个目录下的方法:bugzilla 的版本、免费的缺陷和功能跟踪工具,例如3.4.4 在此结构中提供,而早期版本,例如2.x 至少将 bugzilla 组件安装到三个文件夹中。

Drupal 这个功能强大且流行的免费内容管理系统也采用了这种将所有内容都放在一个目录下的方法,尽管它没有使用 cgi-bin 文件夹,但方法是相同的。

你有什么想法?

最佳答案

cgi-bin 文件夹没有什么特别之处。它就像任何设置了“允许脚本”标志(或您的 Web 服务器的等效项)的可公开访问的 Web 文件夹一样 - 在 PHP/JSP 等世界中这已经变得几乎毫无意义。

您应该只将您希望公开的文件存储在您的网络根目录下的任何文件夹中。您可能不希望互联网上的任何用户都可以下载您的数据和配置,所以不要将它们保存在/cgi-bin 中

如果请求,某些服务器可能会尝试执行/cgi-bin 中的任何文件。这可能会导致问题,尤其是当文本或数据文件作为 shell 脚本执行时。

像 Drupal 这样的应用程序旨在让任何人都能轻松安装,无论他们在其 Web 主机上拥有什么权限。这是它将所有内容保持在一起的主要原因。如果您有能力将文件放在您想要的位置,那么将非公开文件保存在 webroot 之外始终是一个好习惯。如果您必须将它们保存在 webroot 下,请确保您使用服务器的配置来拒绝对非公共(public)文件的公共(public)访问。

关于security - cgi-bin 目录内容 : What else can be stored there, 除了 CGI 脚本/可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1913894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com