Negar todos os pedidos para qualquer setup.php ou upload.php

1

A partir dos registros que vemos em nosso servidor, muitas solicitações chegam para acessar upload.php (por exemplo: /plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/upload.php ), ou muitas variâncias para setup.php para o phpMyAdmin.

Estes são erros 404 no log, porque não temos essas URLs exatas, no entanto, nos sentiríamos mais seguros se negássemos todos os possíveis ataques desse tipo.

Por isso, gostaria de negar todos os pedidos que contenham setup.php ou upload.php no meu servidor Apache2.

Temos várias (centenas) de VirtualHost, e eu preferiria não escrever centenas de vezes a diretiva para negar esses nomes de arquivos em cada VirtualHost.

Pergunta: Como posso fazer isso globalmente no servidor?

    
por netmano 09.11.2011 / 12:42

1 resposta

1

você pode instalar suas regras de reescrita para upload.php e setup.php em um contexto de diretório definido no nível serverconfig. Isso deve verificar as solicitações, não importa o que é o vhost. O diretório deve corresponder a esses caminhos de aplicativos apenas para que você não negue o acesso a outros scripts com o mesmo nome, mas instalados em outros aplicativos

<directory ~ "phpmyadmin_path_global_regex">
rewritengine on
options followsymlinks
rewriterule "setup.php$" - [F]
</directory>
<directory ~ "tiny_mce/plugins/tinybrowser">
rewriteengine on
options followsymlinks
rewriterule "upload.php$" - [F]
</directory>
#vhost defs at the same level

no entanto, isso é ... global. Se mais tarde você quiser instalar um phpmyadmin e configurá-lo, você terá que desabilitar os filtros acima ou adicionar reescritos para os hosts que você não deseja proibir o acesso. mesmo se você quiser ter um tinybrowser dentro de um vhost.

ou seja, para permitir solicitações setup.php para vhost blah.com você deve adicionar

rewritecond %{HTTP_HOST} "!blah.com"

Eu diria que a melhor coisa a fazer é ignorar as entradas de log 404 e certificar-se de que você não tenha nenhum phpmyadmin ou tinybrowser explorável instalado em seu servidor. use um cron script para ter certeza que você não tem nenhum setup.php esquecido no docroots, se você fizer isso, chmod-los para 0 ou removê-los. faça outro cron para ter certeza de que você não está rodando nenhuma versão explorável do phpmyadmin / tinybrowser. O mesmo pode ser aplicado a uma ampla gama de aplicativos.

por outro lado, se registrar essas requisições falsas incomoda você, então você pode fazer algum log customizado. para pular o registro das solicitações falsas:

setenvif Request_URI tiny_mce/plugins/tinybrowser/upload\.php$ bogus-ignore
customlog access.log common env=!bogus-ignore
#if you still want to log upload.php requests but in another log file then add:
customlog bogus-ignore.log common env=bogus-ignore
    
por 09.11.2011 / 13:14