Apache 404 が /boot.ini%2500.htm で失敗する

Apache 404 が /boot.ini%2500.htm で失敗する

何らかの理由で、次のhtaccess意思テストしたURLが404ページにリダイレクトされますが/boot.ini.htmないもしそれが/boot.ini%2500.htm

これを機能させるには何を変更する必要がありますか、それともこれはバグですか?

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

私のサーバーは:

サーバーバージョン: Apache/2.4.41 (Ubuntu)

サーバー構築日: 2021-06-17T18:27:53

答え1

すべてのインスタンスで、デフォルトのApache 404応答が表示されています

その場合、リクエストは Codeigniter によって処理されていないことは確かです。404 は、.htaccess処理される前に Apache サーバーによってトリガーされているようです。これは、mod_security のようなものによってトリガーされる可能性が高いです (HTTP 応答ヘッダーに何らかの手がかりがある可能性があります)。

を含む URL は、%セキュリティ上の脅威となる可能性があります。したがって、サーバー上でこれらのリクエストをブロックする包括的なルールを設定することは、必ずしも珍しいことではありません。何らかの形でサーバー構成にアクセスできない限り、これに影響を与えることはほとんど不可能です。

しかし、すでに404を返しています。そして、404は結局404なので、ボットにとっては何の違いもありません。そして本物いずれにせよ、ユーザーはそのようなリクエストを行うべきではありません。

関連情報