
Tenho a tarefa de manter um servidor LAMP que já foi vitimado por alguns programadores PHP que nunca ouviram falar de injeção de SQL, CSRF ou tópicos semelhantes. Existem vários diretórios graváveis mundialmente nos quais esses scripts PHP devem ser usados para fazer upload de imagens. Claro, eles também podem ser usados para fazer upload de scripts PHP, como web shells.
Existe um módulo ou diretiva do Apache que pode desligar o mecanismo PHP para qualquer diretório encontrado que seja gravável pelo Apache?
safe_mode, por mais feio que seja, foi ativado nos sites em questão. Mas, além disso, estou me recusando a assumir a responsabilidade por auditar ou tocar em uma única linha desses atrozes scripts PHP.
Responder1
A maneira mais fácil é colocar php_flag engine off
um arquivo .htaccess nesse diretório. A diretiva "engine" só é suportada no php 4.0.5 ou posterior.
Você também pode tentar remover os manipuladores no Apache usando .htaccess (por exemplo RemoveHandler .php
), mas eu tentaria o outro primeiro. Remover o manipulador é um daqueles métodos de "forçar a quebra" que às vezes sai pela culatra.