Como permito que os usuários substituam o X-Frame-Options ao usar o Apache + PHP-FPM?

4

Eu tenho um servidor Ubuntu 14.04 rodando Apache + PHP-FPM + FastCGI, servindo as home pages dos usuários. Por segurança, eu habilitei na configuração do Apache:

Header set X-Content-Type-Options: "nosniff"
Header set X-Frame-Options: "sameorigin"
Header set X-XSS-Protection: "1; mode=block"

AllowOverride FileInfo está definido, para que os usuários possam usar Header diretivas em .htaccess arquivos para obter mais controle, caso precisem. No entanto, parece que o Apache não honra isso ao usar PHP com CGI ( mod_headers não enviando cabeçalhos quando o arquivo é PHP ), e que, mesmo com Header always , .htaccess Header comandos são ignorados para arquivos PHP.

Meu próximo pensamento foi permitir que o usuário modificasse seu código PHP para usar a função header do PHP , para que eles possam configurá-lo como X, e eu posso usar setifempty para aplicar isso somente se o usuário não tiver. Depois de experimentar um pouco, descobri que essas entradas funcionam:

Header set X-Frame-Options: "sameorigin" env=!SCRIPT_NAME
Header always setifempty X-Frame-Options: "sameorigin" env=SCRIPT_NAME

Sem os testes env , descobri que o primeiro comando, mesmo que fosse setifempty ou merge , adicionaria um cabeçalho, para que você pudesse ver dois X-Frame-Options nos cabeçalhos. / p>

Agora, essa é a maneira correta de fazer isso? Se o env=SCRIPT_NAME teste for suficiente, ou existe um teste melhor para determinar se o pedido será tratado pelo PHP-FPM / FastCGI ou pelo próprio Apache?

    
por muru 03.04.2016 / 07:45

0 respostas