微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET在POST字符串时,如果字符串是HTML串,要注意的问题

ASP.NET在POST字符串时,如果字符串是HTML串,要注意的问题

认情况下发出现这样的错误:asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误

解决方法:

1、在ASP.NET2时,需要在web.config里面的<system.web></system.web>中加入如下代码,以关闭验证<pages validateRequest="false"></pages>,也就是说提交带标签,比如 <strong>粗体</strong> 这样的值时,ASP.NET 不会报错。完整代码如下

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

2、在ASP.NET4时,还多了一个 requestValidationMode,这是什么意思呢?

requestValidationMode 有两个值:

  • 2.0仅对网页启用请求验证。是启用还是关闭取决于 validateRequest。
  • 4.0 认值。任何 HTTP 请求都会启用请求验证,也就是说不光是网页,还包括 Cookie 等。此时强制启用,不管 validateRequest 为何值。

由于 requestValidationMode="4.0" 是强制启用,所以我们会发现在 .NET Framework 4.0 中仅靠设置 validateRequest 是关闭不了请求验证的,还得将 requestValidationMode 设置为 2.0。

完整代码如下:

<system.web>

   <compilation debug="true" targetFramework="4.0"/>

    <httpRuntime requestValidationMode="2.0" />
    <pages validateRequest="false"></pages>
</system.web>

 

3、MVC框架中,在控制方法前加入:

[ValidateInput(false)]属性

另外还有一种方法就是实现自己的请求验证类,首先需要在web.config中指定请求验证类类型:

<httpRuntime requestValidationType=”Globals.CustomrequestValidation”/>

然后实现自己的请求验证类,这个类必须从RequestValidator类中继承,具体代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Util;
namespace Globals
{
/// <summary>
/// Summary description for CustomrequestValidation
/// </summary>
public class CustomrequestValidation : RequestValidator
{
public CustomrequestValidation() { }
protected override bool IsValidRequestString(HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, outint validationFailureIndex)
{
//block script tags
var idx = value.ToLower().IndexOf(“<script”);
if (idx > -1)
{
validationFailureIndex = idx;
return false;
}
else
{
validationFailureIndex = 0;
return true;
}
}
}
}

IsValidRequestString函数返回true则验证通过,否则验证失败,还会出现文章开头所说的错误消息。此请求验证类当检测到<script>标签时就会出现错误,防止脚本注入攻击等等。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐