首页 > 学院 > 开发设计 > 正文

validateRequest 危险字符串过滤

2019-11-17 03:48:52
字体:
来源:转载
供稿:网友

由于在.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();
    }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表