1

次のように、web.config の HttpHandlers セクションに HTTP ハンドラーを設定しています。

<add path="myNamespace.myHandler.axd" verb="*" type="myNamespace.myHandler, myNamespace" validate="false"/>

PCI スキャンにより、このハンドラー内の脆弱性が明らかになり、XSS 攻撃を受けやすくなります。基本的に、クエリ文字列を介してタグを渡すことができ、httphandler はタグを生の形式で応答に直接ダンプします。

このハンドラーのソース コードにアクセスできないため、asp.net と次のタグを使用して、この脆弱性を閉じようとしています。

<location path="myNamespace.myHandler.axd">
    <system.web>
        <pages validateRequest="true">
        </pages>
    </system.web>
</location>

ただし、これは機能していません。クエリ文字列は検証されておらず、タグはまだ取得中です。

asp.net 3.5 で IIS7 を実行しています。

誰でも助けることができますか?

乾杯、パット

4

1 に答える 1

0

私の知る限り、構成設定を使用してasp.net3.5で汎用httpハンドラーの要求検証を有効にする簡単な方法はありません。ただし、.net 1.1で導入されたいくつかの検証方法がありますが、これはデフォルトの要求検証で使用されるのと同じ基準であると私は信じています(これは100%確実ではありません)。

4.0では、2.0設定に戻すオプションを備えた、デフォルトのリクエスト検証が全面的に導入されました。

私が見ているように、2つのオプションがあります。

  • コードのどこかで検証を手動で処理する
  • .net 4.0にアップグレードすると、デフォルトのリクエスト検証のメリットを享受できます
于 2011-05-03T18:02:50.327 に答える