Por que scripts CGi não lêem cabeçalhos de STDIN

0

Seguindo as vulnerabilidades recentes relacionadas ao CGI, li um pouco sobre isso e tenho uma pergunta. Por favor, note que eu nunca usei CGI sozinho e que eu não codifique em PHP ou Perl, então talvez haja algo óbvio que estou perdendo.

Pelo que entendi, a mensagem de resposta deve ser escrita pelo script para STDOUT, incluindo ambos cabeçalhos e corpo. Por que então não ler toda a mensagem de solicitação do STDIN, incluindo os cabeçalhos e o corpo? Por que os cabeçalhos são removidos e atribuídos a variáveis ambientais?

    
por xaxa 21.07.2016 / 00:31

1 resposta

0

Mensagens de resposta para Stdout contêm apenas os cabeçalhos adicionais que o CGI deseja adicionar. Estes podem ser substituídos ou alterados pelo serviço web do host antes de serem emitidos para o cliente. Também outros cabeçalhos serão adicionados em geral.

Quanto aos cabeçalhos de entrada, não faz absolutamente nenhum sentido colocar a carga e o risco de analisá-los no CGI. Erros de análise criam todos os tipos de vulnerabilidades. O host do servidor da Web é a melhor coisa para fazer isso.

No entanto, com FastCGI é diferente novamente, já que as variáveis de ambiente não são mais uma opção, já que o processo CGI permanece residente.

    
por 21.07.2016 / 02:23