Apache - adiciona cabeçalhos http a pedidos, usando script (bash, perl, php etc) para definir os cabeçalhos

2

Eu estou tentando descobrir a viabilidade de um projeto onde eu quero ter um script executado em cada requisição (preferencialmente filtrado pelo tipo MIME), e um script executado para definir os cabeçalhos da resposta.

Basicamente, eu quero que pedidos de documentos text / html e application / json tenham cabeçalhos http com dados arbitrários gerados pelo sistema (os cabeçalhos reais adicionados serão git branch e commit hash info).

Isso é para servidores da Web locais e de preparação, portanto, o impacto no desempenho não é uma grande preocupação.

Eu tenho investigado mod_ext_filter com scripts bash, e enquanto eu consegui injetar strings com sucesso na saída, eu não pude acessar os cabeçalhos (eu suponho que eles já foram enviados?)

Existe alguma outra opção que eu possa investigar?

Minha tentativa até agora (em vhost):

    ExtFilterDefine githeaders mode=output \
                   cmd="/bin/bash /path/to/script/git_headers.sh" preservescontentlength

   <Location />
     SetOutputFilter githeaders
   </Location>

Teste de script bash básico echo

#!/bin/bash

echo "hello"

cat

O acima funciona bem, injetando olá nas respostas, mas não consigo descobrir como alterar cabeçalhos. Qualquer ajuda / sugestões apreciadas.

    
por Zak Henry 29.10.2014 / 12:19

1 resposta

0

Os exemplos que vi geralmente usam mod_headers para inserir, remover ou substituir cabeçalhos, como o exemplo abaixo do manual.

# mod_ext_filter directive to define the external filter
ExtFilterDefine gzip mode=output cmd=/bin/gzip

<Location /gzipped>
# core directive to cause the gzip filter to be
# run on output
SetOutputFilter gzip

# mod_header directive to add
# "Content-Encoding: gzip" header field
Header set Content-Encoding gzip
</Location>

Eu só posso supor que usando a API regular e escrevendo o filtro em C você obtém mais acesso e poderá modificar os cabeçalhos.

    
por 29.10.2014 / 13:04