二重エスケープ シーケンスとは、文字列をエスケープするときに特定の文字が複数回エスケープされる状況を指します。 URL エンコードでは、特殊文字がサーバーに正しく渡され、解析されるようにするために、特殊文字がエスケープされることがよくあります。たとえば、スペースは「%20」としてエスケープされますが、プラス記号 (+) は URL 内のスペースを表すため、通常はエスケープされません。ただし、サーバーがすでにエスケープされている文字を誤って再度エスケープすると、二重のエスケープ シーケンスが生成されます。
サーバーは、リクエスト フィルタリング モジュールが 2 つのエスケープ シーケンスを含むリクエストを拒否するように構成されていると報告します。これは、URL 内のプラス記号が 2 回エスケープされている、つまりプラス記号が %2B としてエスケープされているとサーバーが認識していることを意味する可能性があります。その後、再度エスケープされました。定義は %252B であり、正しくないと考えられます。解析エラーやセキュリティ上の問題が発生する可能性があるため、サーバーはそのようなリクエストを拒否する場合があります。
改訂
applicationHost.config
ファイル構成は、念のため変更する前にファイルをバックアップしてください。
%SystemDrive%\Windows\System32\inetsrv\config
通常は、フォルダーの下で対応するサイト構成ファイルを見つけます。 \applicationHost.config
をクリックし、テキスト エディタ (メモ帳など) で開きます。<requestFiltering>
一部。 IIS 7 では、URLScan モジュールは、デフォルトでプラス記号を含む URL 要求をブロックする場合があります。<requestFiltering>
セクションに、 <allowDoubleEscaping>
要素、その値をに設定 true
, URL でプラス記号を使用できるようにします。例:<security> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security>