1. ホーム
  2. asp.net

[解決済み] jquery の post 呼び出しから asp.net ページに html マークアップを送信する際に、潜在的に危険な Request.QueryString 値がクライアントから検出されました。

2022-02-17 09:22:27

質問

ASP.NETのページにjQueryでajaxを呼び出し、サーバーページでクエリ文字列を送信しているデータを保存しています。ASP.NETページでクエリ文字列を読もうとすると、このエラーが発生します。

A potentially dangerous Request.QueryString value was detected from the client...

を設定しました。 ValidateRequest="false" を私のページで使用します。すべてのページにそれを設定する必要はありません。そのため、コンフィグレベルではなく、ページレベルで設定しました。

  var content = "<h3>Sample header</h3><p>sample para</p>"
  content = encodeURIComponent(content);
  var url = "../Lib/ajaxhandler.aspx?mode=savecontent&page=home&ltxt=" + content;

     $.post(url, function (data) { 
       //check return value and do something
   });

そして、私のasp.netのページで

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxhandler.aspx.cs" ValidateRequest="false" Inherits="MyProject.Lib.ajaxhandler" %>

しかし、私がhtmlマークアップの代わりにプレーンテキストを送信している場合、それはうまく動作します。

どうすればいいですか?

これがASP.NET 4の場合、以前は 変更点 ValidateRequest . 参照 このStackOverflowの質問 の詳細については requestValidationMode .