URLに特別なクエリ値が入力されると、ApacheはルートURL(/
)への302リダイレクトを送り返します。
CPanelを使用しており、サーバーを所有しています。 Apache仮想ホストファイルは変更されておらず、CPanelによって管理されています。いくつかの調査を試みましたが、問題に「リダイレクト」または「302」と入力すると、「URLの書き換え方法」に関する回答が得られます。
chevrons
およびその他の特殊文字を使用すると問題が発生します。テストしたクエリは次のとおりです(私のサーバー、テストサブドメイン、.htaccessなし、スクリプトエコー$_GET
): http://dev.rihan.fr/echo.php
?foo=%3c
(つまり?foo=<
)(OK)?foo=%3e
(つまり?foo=>
)(OK)?foo=%3c%3c
(つまり?foo=<<
)(KO)?foo=%3e%3e
(つまり?foo=>>
)(KO)?foo=%3d%3c
(つまり?foo==<
)(OK)?foo=%3c%3d
(つまり?foo=<=
)(KO)Apache 2.4.18、PHP 5.6.20を使用しています。
それが既知のバグなのか特定の構成なのかについてのアイデアはありますか?ご協力いただきありがとうございます。
HtmlエスケープされたデータがURLに追加されると、サーバーのセキュリティ機能が接続をリダイレクトしているようです。 Apache構成ファイルとvhostファイルを調べて、見つかったリダイレクトルールを確認します。HTMLエスケープされたデータを識別し、セキュリティ上の予防措置としてブロックするための正規表現パターンがあります。すべての構成ファイルを調べたくない場合は、問題を引き起こしているエスケープ値をbase64_encodingしようとすることができますが、URLのhtmlエスケープデータをブロックするようにサーバーを構成する前にこれを行いました文字列は正規表現パターンを渡しました。