IIS 10 の隠しセグメントは、URL 書き換えルールで設定した 400 ページではなく 404 ページに移動します。

IIS 10 の隠しセグメントは、URL 書き換えルールで設定した 400 ページではなく 404 ページに移動します。

定義されたリスト以外の URL からのサイトへのアクセスを防ぐための URL 書き換えルールがあります。URL が400 Bad Requestリストにない場合は、ルールが返されます。

    <rule name="No unknown hosts" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
        <add input="{HTTP_HOST}" pattern="^www\.example\.com$" negate="true" />
        <add input="{HTTP_HOST}" pattern="^admin\.example\.com$" negate="true" />
      </conditions>
      <action type="CustomResponse" statusCode="400" />
    </rule>

ブロックしようとしているURLの例は、mail.example.comまたはです102.15.63.233。これはうまく機能します。を除外する隠しセグメントが URL に追加されると、次のようにmail.example.com/bin/なります。これにより、カスタム 404 エラー ページが表示されますが、URL がブロックされて 400 が返されるため、すべてのスタイル シートとその他のアセット (画像など) が解決されず、見栄えが悪くなります。さらに悪いことに、ディレクトリの参照を許可していると判断されるため、PCI DSS スキャンでエラーが発生します。

ほぼ一日中、思いつく限りのあらゆる方法で Google 検索を試みましたが、成果はありませんでした。ああ、このようにする理由は、無効な HOST ヘッダーを使用して、サイトを悪意のあるサイトにリダイレクトできないようにするためです (他の多くの Rewrite ルールは、この機能に依存しています)。ここで誰かが答えを持っていることを願っています。

関連情報