ValidateRequest 属性

转载 2009年10月17日 12:44:00
  • 标签:
  • html /
  • asp.net /
  • 正则表达式 /
  • 设计模式 /
  • 公告 /
  • c#
  • 1220

在 ASP.NET 1.1 中,@Page 指令上的 ValidateRequest 属性被打开后,将检查以确定用户没有在查询字符串、Cookie 或表单域中发送有潜在危险性的 HTML 标记。如果检测到这种情况,将引发异常并中止该请求。该属性默认情况下是打开的;您无需进行任何操作就可以得到保护。如果您想允许 HTML 标记通过,必须主动禁用该属性。
  <%@ Page ValidateRequest="false" %>
ValidateRequest不是 万能的药方,无法替代有效的验证层。

  没有任何关闭 ValidateRequest 的理由。您可以禁用它,但必须有非常好的理由;其中一条这样的理由可能是用户需要能够将某些 HTML 张贴到站点,以便得到更好的格式设置选项。这种情况下,您应当限制所允许的 HTML 标记(<pre>、<b>、<i>、<p>、<br>、<hr>)的数目,并编写一个正则表达式,以确保不会允许或接受任何其他内容。

以下是一些有助于防止 ASP.NET 遭受 XSS 攻击的其他提示:

? 使用 HttpUtility.HtmlEncode 将危险的符号转换为它们的 HTML 表示形式。 
 
? 使用双引号而不是单引号,这是因为 HTML 编码仅转义双引号。 
 
? 强制一个代码页以限制可以使用的字符数。

总之,使用但是不要完全信任 ValidateRequest 属性,不要太过懒惰。花些时间,从根本上理解 XSS 这样的安全威胁,并规划以一个关键点为中心的防御策略:所有的用户输入都是危险的。

自我总结语:

通常用于:当发布公告等信息时,加入了第三方编辑器的情况之下,提交数据时,一定要禁止该属性<%@ Page ValidateRequest="false" %>
如果在1.0版本中webconfig不支持该代码,则应针对每个页面进行设置.

你只需要在那一页的HTML设计模式下把validateRequest="false"添加到Page命令中即可,例如:   
  <%@   Page   language="c#"   Codebehind="RoleDepart.aspx.cs"   AutoEventWireup="false"   Inherits="roleManage.RoleDepart"   validateRequest="false"%>

.net的ValidateRequest 属性相关推荐

  1. asp.net中的validaterequest属性与安全性

    不知道大家之前有没有注意到这个属性,这里我们来一起讨论一下这个属性的作用以及我们以后到底该怎样使用它! 我们先来了解一下这个属性:(注:本属性在.net 2.0中是新增的!) 1.它所在的命名空间:S ...

  2. ValidateRequest 属性

    ValidateRequest 属性2006-08-03 15:21 在 ASP.NET 1.1 中,@Page 指令上的 ValidateRequest 属性被打开后,将检查以确定用户没有在查询字符 ...

  3. ASP.NET 页面中的 ValidateRequest属性

    ValidateRequest 指示是否应发生请求验证.如果为 true,请求验证将根据具有潜在危险的值的硬编码列表检查所有输入数据.如果出现匹配情况,将引发 HttpRequestValidatio ...

  4. PagesSection.ValidateRequest 属性

    微软给的解释为: 获取或设置一个值,该值确定 ASP.NET 是否针对危险值检查来自浏览器的输入. 命名空间:System.Web.Configuration 程序集:System.Web(在 sys ...

  5. ASP.net中的validaterequest

    这个属性是用来验证客户端用户的输入的,用来验证用户的输入中是否有危险字符的,这个属性的默认值为true,微软之所以这么做是为了提高asp.net程序的安全性,所以很多程序员即使不知道怎么来防御黑客的攻 ...

  6. %@ Page% page指令属性

    以前只知道会用就行,今天boss让我去理解一下<%@ Page%>里面的各个属性的用法,于是就有了这篇东凑西凑的文章! <%@ Page%>是页面指令,作用于当前页面,指定使用 ...

  7. 构建安全的 ASP.NET 网页和控件

    本页内容 本模块内容 目标 适用范围 如何使用本模块 威胁和对策 设计注意事项 输入验证 跨站点脚本 身份验证 授权 模拟 敏感数据 会话管理 参数处理 异常管理 审核和日志记录 小结 其他资源 本模 ...

  8. ASP.NET常见几种安全问题

    1:SQL 注入 2:XSS 3:CSRF 4:文件上传 1:SQL 注入 引起原因: 其实现在很多网站中都存在这种问题.就是程序中直接进行SQL语句拼接.可能有些读者不太明白.下面通过一个登录时对用 ...

  9. OWASP Top 10 – 2013, 最新十大安全隐患(ASP.NET解决方法)

    OWASP(开放Web软体安全项目- Open Web Application Security Project)是一个开放社群.非营利性组织,目前全球有130个分会近万名会员,其主要目标是研议协助解 ...

最新文章

  1. 一文读懂Python复杂网络分析库networkx | CSDN博文精选
  2. MySQL升级教程(CentOS)
  3. 任意编程语言访问PostgreSQL:C++接口
  4. 计算任何一天是星期几的几种算法
  5. 3d建模电脑配置要求_学习3D建模需要什么软件,电脑配置应该如何?新手自学会遇到的问题...
  6. 第7章 Scrapy突破反爬虫的限制
  7. 的称重在哪里_如何申请条形码,条形码在哪里申请办理
  8. 2021-10-14 矩阵求导相关
  9. 【图像配准】基于matlab SIFT图像配准【含Matlab源码 463期】
  10. php 三大魔术方法,PHP魔术方法
  11. 思维导图学习案例分享(持续更新)
  12. Python控制台打印彩色字符图
  13. 纯css实现简单的页面视差滚动
  14. video标签设置autoplay(自动播放)无效
  15. 三星手机「我的文件」应用闪退问题的解决方法
  16. 最新自己怎么建网站零基础教程-李廷学
  17. IMP遇到IMP-00009错误
  18. X站全称是什么_B站课程排行榜,当代大学生最爱学什么?
  19. 传输媒体、表示媒体、感觉媒体、表现媒体的区别
  20. 那些堪称神器的PPT制作小工具

热门文章

  1. 小心熟能生巧,小心完美主义
  2. C# DateTime类详解
  3. 查找搜狐文章里面插入的腾讯视频
  4. 2010年《斯坦福大学开放课程: 编程方法》(Open Stanford Course : Programming Methodology)[中英双语字幕][RMVB]更新中
  5. Altium Designer19及以上版本,添加删除元件库的方式
  6. 解决443/80端口被占用情况
  7. 字体文件压缩 - font-spider (字蛛)
  8. MYSQL递归查询,根据子类ID查询所有父类(宇宙第一详细教程)
  9. Linux下双网卡绑定bond0,1,4
  10. linux查看硬件配置命令