validateRequest 危险字符串过滤

王朝学院·作者佚名  2010-04-26
窄屏简体版  字體: |||超大  

由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错。

解决方案一:

在.aspx文件头中加入这句:

<%@ Page validateRequest="false" %>

解决方案二:

修改web.config文件:

<configuration>

<system.web>

<pages validateRequest="false" />

</system.web>

</configuration>

因为validateRequest默认值为true。只要设为false即可。

==========

如果未关闭ValidateRequest时,用以下ASP.NET代码进行危险捕获和提示:

protected void Page_Error(object sender, EventArgs e)

{

Exception ex = Server.GetLastError();

if (ex is HttpRequestValidationException)

{

Response.Write("输入的内容中有危险字符,比如<>等");

Server.ClearError(); // 如果不ClearError()这个异常会继续传到Application_Error()。

}

}

//检查代码,把代码转义成html代码形式

protected void Button1_Click(object sender, EventArgs e)

{

// 将输入字符串编码,这样所有的HTML标签都失效了。

StringBuilder sb = new StringBuilder(HttpUtility.HtmlEncode(ftbContent.Text));

// 然后我们选择性的允许<b> 和 <i>

sb.Replace("&lt;b&gt;", "<b>");

sb.Replace("&lt;/b&gt;", "");

sb.Replace("&lt;i&gt;", "<i>");

sb.Replace("&lt;/i&gt;", "");

ftbContent.Text = sb.ToString();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航