Apache 404 falha com /boot.ini%2500.htm

Apache 404 falha com /boot.ini%2500.htm

Por alguma razão o seguinte htaccessvairedirecionar para uma página 404 se o URL testado for /boot.ini.htmmasnãose for /boot.ini%2500.htm.

O que preciso mudar para que isso funcione ou isso é um bug?

Options All -Indexes
Options +FollowSymlinks

ErrorDocument 403 /site/404
ErrorDocument 404 /site/404

RewriteEngine On

RewriteRule ^(fonts)($|/) - [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA]

# Ensure Authorization header is passed along
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

ServerSignature Off

php_value memory_limit 256M

Meu servidor é:

Versão do servidor: Apache/2.4.41 (Ubuntu)

Servidor construído: 2021-06-17T18:27:53

Responder1

Em todos os casos, estou vendo a resposta padrão do Apache 404

Nesse caso a solicitação certamente não está sendo processada pelo Codeigniter. Parece que o 404 está sendo acionado pelo servidor Apache, antes .htaccessmesmo de ser processado. Provavelmente, isso é acionado por algo como mod_security (pode haver alguma pista nos cabeçalhos de resposta HTTP).

URLs que contêm %podem representar uma ameaça à segurança. Portanto, não seria necessariamente incomum ter uma regra geral no servidor que simplesmente bloqueasse essas solicitações. A menos que você tenha acesso à configuração do servidor de alguma forma, é improvável que você possa fazer algo para influenciar isso.

Mas já está retornando um 404. E, afinal, um 404 é um 404, então não fará nenhuma diferença para os bots. Erealos usuários nunca deveriam fazer tais solicitações de qualquer maneira.

informação relacionada