A execução do cgi pode ser condicionada ao ServerName?

A execução do cgi pode ser condicionada ao ServerName?

Configurei várias entradas do VirtualHost.

<VirtualHost *:80>
        ServerName subdomain1.domain.tld
        [...]
        DocumentRoot /var/www/html/subdomain1
        [...]
</VirtualHost>

<VirtualHost *:80>
        ServerName subdomain2.domain.tld
        [...]
        DocumentRoot /var/www/html/subdomain2
        [...]
</VirtualHost>

Mais tarde habilitei o cgi (cgid) por algum motivo. Desde então, esse CGIé acionadoperguntando em algum caminho domain.tld/a_path_for_a_cgi/. Pelo que posso ver, não depende dos subdomínios configurados para entradas do VirtualHost.

Eu gostaria que isso fosse desativado para a maioria dos subdomínios:

subdomain1.domain.tld/a_path_for_a_cgi/ => disallow or not to find
subdomain2.domain.tld/a_path_for_a_cgi/ => disallow or not to find
subdomain3.domain.tld/a_path_for_a_cgi/ => allow

Isso é possível no servidor Apache ou devo bifurcar o cenário para ter dois servidores Apache? Devo bifurcar o cenário de qualquer maneira por segurança, já que o cgi foi enviado desabilitado (Debian Stretch)?

Responder1

Se você deseja ativar o CGI apenas em um arquivo específico VirtualHost, mova suas diretivas específicas do cgi ( ScriptAliasou o <Directory/>bloco que contém Options +ExecCGI, o que estiver configurado) da configuração do servidor principal para o arquivo de destino VirtualHost.

O módulo mod_cgi(ou mod_cgid) está obviamente ativo em todos os vhosts se estiver habilitado no servidor, mas você não precisa usá-lo em todos os vhosts.

É verdade que a maioria dos módulos está desabilitada por padrão por motivos de segurança e desempenho, mas IMO você não precisa configurar um segundo servidor apenas porque precisa deste módulo em um vhost. Deve ser suficiente se você não puder executar nenhum script nos outros vhosts (acesso ausente ScriptAlias/ ExecCGIou proibido ao script <Directory/>).

Links:

informação relacionada