zoukankan      html  css  js  c++  java
  • validateRequest 危险字符串过滤

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

     
    解决方案一:   
    在.aspx文件头中加入这句:   
    <%@  Page  validateRequest="false"    %>   


    解决方案二:   
    修改web.config文件:   
    <configuration>   
       <system.web>   
           <pages  validateRequest="false"  />   
       </system.web>   
    </configuration>  

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

    ==========

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

        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();
        }

  • 相关阅读:
    Vue 2.x windows环境下安装
    VSCODE官网下载缓慢或下载失败 解决办法
    angular cli 降级
    Win10 VS2019 设置 以管理员身份运行
    XSHELL 连接 阿里云ECS实例
    Chrome浏览器跨域设置
    DBeaver 执行 mysql 多条语句报错
    DBeaver 连接MySql 8.0 报错 Public Key Retrieval is not allowed
    DBeaver 连接MySql 8.0报错 Unable to load authentication plugin 'caching_sha2_password'
    Linux系统分区
  • 原文地址:https://www.cnblogs.com/kingfly/p/1619978.html
Copyright © 2011-2022 走看看