ASP.NET WebForms (.NET 4.5) を使用しており、多くのページで再利用される「コンテンツ ブロック」コントロールがあります。コントロールの ValidateRequestMode と個々の要素を「無効」に設定しようとしましたが、web.config からの要求の検証は依然として安全でない入力を防ぎます。
これを回避する方法はありますか、それとも何か間違っていますか?
例:
ASP.NET WebForms (.NET 4.5) を使用しており、多くのページで再利用される「コンテンツ ブロック」コントロールがあります。コントロールの ValidateRequestMode と個々の要素を「無効」に設定しようとしましたが、web.config からの要求の検証は依然として安全でない入力を防ぎます。
これを回避する方法はありますか、それとも何か間違っていますか?
例:
試行錯誤の朝の後、以下のコードを使用してサイトのこの同じ問題を解決しました-新しいリクエスト検証プロセスに関するMicrosoftのドキュメントは、Webフォームに関しては間違っているようです.
次のように、web.config で .NET 4.5 をターゲットにします。
<httpRuntime targetFramework="4.5" requestValidationMode="4.5" />
ValidateRequestMode="Disabled"
次に、入力コントロール自体に次のように追加します。
<asp:textbox id="myControl" runat="server" ValidateRequestMode="Disabled"/>
(myControl.Text 経由ではなく) POST データに直接アクセスしている場合は、その時点で検証をバイパスする必要もあります。
Request.Unvalidated.Form("myControl");