apache ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 行在生产中是否应该被删除?

apache ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 行在生产中是否应该被删除?

这是我当前 apache 配置中引用 cgi-bin 内容的部分。此信息包含在 debian 的默认配置中。是否应在实时/生产机器上将其删除?

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

答案1

如果您没有从 /usr/lib/cgi-bin/ 运行任何 CGI,则没有必要。话虽如此,这是一台生产机器,因此请谨慎行事。

答案2

是的,应该在生产系统上删除它 - 除非(当然)您确实在使用它。如果您不确定,则可能意味着您没有使用它。

原因如下:使用此配置,cgi-bin/指向/usr/lib/cgi-bin并且其中的任何内容都可以执行。它是一个系统目录,因此其中的内容通常取决于您使用系统的包管理系统安装的内容。任何具有 Web 界面的软件(如某种监控或管理软件)都可能有一个 cgi 脚本文件。这意味着只需安装这样的程序就足以让任何有权访问此 Web 服务器的人(在公共 Web 服务器的情况下:每个人)都可以访问该 Web 界面。

假设您刚刚安装了某种系统管理软件,该软件具有 Web 界面,形式为 cgi 文件,/usr/lib/cgi-bin其默认密码为“1234”。更糟糕的是,这是在公共 Web 服务器上。现在,每个人都可以打开http://www.yourserver.com/cgi-bin/foowebadmin,使用“1234”登录并更改您的 PRODUCTION 服务器的系统配置。

当然,如果您是有意使用此功能,您将会注意适当的安全/身份验证等等,一切都会好起来的。

答案3

我个人总是从 sites-enabled 目录中删除 debian 自带的默认 vhost。我还将 apache.conf 替换为适合我们环境的内容。

这些是配置文件,dpkg(apt-get 的后端)应该期望它们被更改。像 puppet 这样的工具会以一种保留“旧配置”的方式运行 apt-get,以防软件包更新其配置,如果您以交互方式运行 apt-get,它会询问您在检测到配置文件更改时该怎么做。

那是任何改变不仅仅是无法自动合并的冲突。毕竟,即使可以合并,也可能会在你的系统中产生一些你并不真正想要的配置。

为了打破口水战(抱歉,这应该在其他地方讨论,但我只是想说出来):我的观点是,即使安装了守护进程,也不应该自动启动它。对于任何像样的网站,默认配置几乎总是错误的。(是的,我知道我可以设置 dpkg 选项,这样它就不会启动,我宁愿让它成为默认设置)

相关内容