• System.Web.HttpRequestValidationException——从客户端检测到危险的Request值


    这是比较常见的问题了,如果Web表单中有输入类似于Html标签之类的文本,在通过Request.QueryString或者Request.Form传递这些值的时候,就会触发这样的异常,出于脚本注入等安全性考虑,这也是合情合理的。

    一般情况下,程序应尽量过滤掉,或者禁止表单上类似的输入,如果业务上非得有这样的要求,需要输入标签性的文本,可以考虑在数据向服务器端传递前,将一些敏感字符按照约定规则替换掉,向客户端输出时,再还原出原始文本。

             以上是个人认为比较正确的做法,当然就解决眼前问题而言,我看到的都是偷懒的、不计后果的做法,我得承认自己是个只要有偷懒的可能就绝不肯多费功夫的家伙,那就来吧,如果是Asp.Net WebForm应用程序,我记得以前好像在哪里写过,就是在aspx文件的page指令上添加ValidateRequest=false 属性值,这是对单一表单的做法,要想作用于更广泛的Web表单,自然是在webconfig文件中做相同的设置。另外,如果是Asp.Net MVC应用程序,则需要在webconfig<system.web>配置节中加上<httpRuntimerequestValidationMode="2.0"></httpRuntime>配置,之后,再在Controller或者Action头上添加[ValidateInput(false)]的标识,区别大家知道的,作用域不同而已,这里说的Asp.Net MVC是基于Framework4.0的环境的,Framework3.5下没试过,想来差不多。

  • 相关阅读:
    Thinkphp回顾(五)之前台模板中的基本语法
    Thinkphp回顾之(四)查询方法深入学习
    Thinkphp框架回顾(三)之怎么实现平常的sql操作数据库
    Thinkphp学习回顾(二)之config.php的配置
    Thinkphp学习回顾(一)之基本结构目录
    端口
    curl put delete post get请求类型参数
    xshell连接virtualbox下的linux系统
    实现jsonp的三种方式
    匹配汉字
  • 原文地址:https://www.cnblogs.com/soundcode/p/4191797.html
Copyright © 2020-2023  润新知