web-dev-qa-db-ja.com

潜在的に危険なRequest.Form値がクライアントから検出されました(wresult = "<trust:RequestSecuri ...")

WIFを使用すると、リクエスト検証エラーも発生します。 STSに正しく送信されますが、帰りにこの検証エラーが発生します。

私はすべての指示に従いました。

<httpRuntime  requestValidationMode="2.0" />

小切手!

    [ValidateInput(false)]

小切手!

<pages validateRequest="false" >

小切手!

カスタムバリデーターを試しましたが、インスタンス化されません。

エラースタック:

[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (wresult="trust:RequestSecuri...").]
   System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +11396740
   System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +82
   System.Web.HttpRequest.get_Form() +212
   Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.IsSignInResponse(HttpRequest request) +26
   Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CanReadSignInResponse(HttpRequest request, Boolean onPage) +145
   Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +108
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270

助言がありますか?

16
Code Silverback
<httpRuntime requestValidationMode="2.0"/>

この後追加

<configuration>
    <system.web>
        <pages validateRequest="false" />
    </system.web>
</configuration>

mvc3にもAllowHtml属性があります

[AllowHtml]
public string Property{ get; set; }

ここにいくつかの便利なリンクがあります

ASP.NET MVC –ページvalidateRequest = falseが機能しませんか?

ValidateInput(False)が機能しないのはなぜですか?

26
Rafay

ASP.NETに組み込まれている更新された要求バリデーターを利用する.NET4.5を実行している場合は、 この回答 を参照してください。

3
roryWoods

MVC 3(2についてはよくわかりません)では、global.asax.csにグローバルフィルターを追加できます。

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new ValidateInputAttribute(false));
}

これを以下と組み合わせると、すべてのデータが入力され、正しく安全に表示されるはずです。

<httpRuntime encoderType="Microsoft.Security.Application.AntiXssEncoder, AntiXssLibrary"/>

web.configで(コロンに注意)を使用して:

<%: Model.Something %>

またはかみそりで:

@Model.Something

場合によってはJavascriptで:

@Html.Raw(Ajax.JavaScriptStringEncode(Model.Something))
0
Simon Vane

ASP.NET:潜在的に危険なRequest.Form値がクライアントから検出されました に従って、両方の構成をsystem.webセクションにまとめることができます。

これは標準のASP.NET機能であることに注意してください。 WIFには接続されていません。

0
nzpcmad