文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程Asp.Net在ASP.NET中防止注入攻击[翻译]
精品推荐
特别推荐
·技巧实例:ASP.NET生成静态页面实现方法
·ASP.NET、JSP及PHP之间的抉择
·.net基础知识错误注意二十二点知识
·asp.net2.0学习历程 菜鸟到中级程序员的飞跃
·.NET基础知识-什么是.NET
·初学C#+ASP.NET+Oracle时积累的备忘点滴
·专家详解:复杂表达式的执行步骤
·asp.net中的加密方法
·DataGrid常见关注问题解决方案
·学习笔记 ASP.NET 5种页面转向法
·ASP.NET网络编程中经常会用到的27个函数集
·ASP.NET之上传文件管理策略
·专家:用.NET动态创建类的实例讲解
·ASP.NET WEB服务和Flash打造MP3播放器
·精通ASP.NET中弹出窗口技术
·asp.net常用代码
·asp.net创建文件夹的IO类的问题
·Asp.Net函数集
·Asp.net cache 简述
·如何最大限度提高.NET的性能 (续)
热点TOP10
·AspNetPager分页控件--使用方法
·ASP.NET购物车的实现及结算处理
·ASP.NET结合存储过程写的通用搜索分页程序
·ASP.Net程式中调用FCKeditor接口
·.NET Framework 3.5多国语言包
·自动下载完整的.NET源代码
·ASP.NET2.0的multiview和wizard控件
·asp.net2.0学习历程 菜鸟到中级程序员的飞跃
·在ASP.NET中把图片保存到SQL SERVER数据库(vb.net)
·通过避免下列10个常见ASP.NET缺陷使网站平稳运行
·.NET基础知识-什么是.NET
·在C#中把两个DataTable连接起来
·VS2005+Crystal Report开发Web应用
·asp.net(C#)海量数据表高效率分页算法(不使用存储过程)
·IFontDisp和CFontHolder的使用问题
·获得一个DataTable中的奇数行和偶数行
·调试ASP.NET程序时出现“The Project Is Not Configured to Be Debugged”错误信息
·ADO.NET 2.0 DataSet和DataTable 新功能新特性
·用C#写计算器程序
·VC#中使用Crystal Report

在ASP.NET中防止注入攻击[翻译]

日期:2006年10月9日 作者: 查看:[大字体 中字体 小字体]


<html>
 <script runat="server">
  void btnSubmit_Click(Object sender, EventArgs e)
  {
    // If ValidateRequest is false, then 'hello' is displayed
    // If ValidateRequest is true, then ASP.NET returns an exception
    Response.Write(txtString.Text);
  }
 </script>
 <body>
  <form id="form1" runat="server">
    <asp:TextBox id="txtString" runat="server"
                 Text="<script>alert('hello');</script>" />
    <asp:Button id="btnSubmit" runat="server" OnClick="btnSubmit_Click"
                 Text="Submit" />
  </form>
 </body>
</html>
 

当你运行页面的时候,"Hello"被显示在一个消息框中,因为在txtString中的脚本被执行并被客户端的浏览器处理.

如果你设置ValidateRequest = "true" 或者移除ValidateRequest页面属性,ASP.NET请求验证会拒绝脚本输入并抛出一个象下面这样的错误信息.

 

A potentially dangerous Request.Form value was detected from the client (txtString="<script>alert('hello").
 

注意 不要仅仅依赖请求验证功能,而只是把它作为自定验证的辅导手段.

第二步.约束输入

要约束输入通过如下方法 :

 

使用服务器端的输入验证.不要依赖于客户端的验证,因为它很容易就被绕过.使用客户端验证是为了减少页面返住次数提升性能,改进用户体验.
验证输入的长度,范围,格式和类型.确保输入内容是符合要求的正确内容.
使用强数据类型.为数字类型的输入指定如Integer或者Double的类型.为字符输入指定为String数据类型.为日期时间输入指定DateTime类型.
要验证表单里面的HTML控件输入字段,在服务器端代码中进行验证,使用Regex正则表达式类型可以帮助约束字符输入.下面的章节介绍如何约束普通输入类型的变量.

验证字符串字段

 

要验证字符串字段,如姓名,地址,传真,生份证号码,使用正则表达式.
约束可接受的字符范围.
启动格式规则.例如,基于模式的字段如税号,邮编,邮递区号需要规定的字符模式.
验证长度.
 

使用正则表达式验证控件(RegularExpresionValidator)

要使用则表达式验证控件需要设置待验证的控件名(ControlToValidate),验证表达式(ValidationExpression)和出错提示(ErrorMessage).相关的属性设置请看下面的代码示例.

 

<form id="WebForm" method="post" runat="server">
  <asp:TextBox id="txtName" runat="server"></asp:TextBox>
  <asp:RegularExpressionValidator id="nameRegex" runat="server"
        ControlToValidate="txtName"
        ValidationExpression="^[a-zA-Z'.\s]{1,40}$"
        ErrorMessage="Invalid name">
  </asp:regularexpressionvalidator>
</form>

 

在上面的代码中,正则表达式被用于限定输入的名字为字母(允许大写字母和小写字母),空格,单名省略号象O'Dell和句点.此外,输入的字符长度被限定在40个字符.

注意 正则表达式验证控件(RegularExpressionValidator)会自动加入脱字符(^)和美元符号($)作为开始和结束的分隔符.如果你没有在自定义的表达式中加入他们那么最好加入.加入分隔符只是为了让你的表达式得到想要的那部分数据内容.

使用正则表达式类(Regex Class)

如果你没有使用服务器端的控件(意味着你不能使用验证控件),或者你需要其它的输入字段源而非表单字段(比如查询字串参数和cookies),那么你可以使用正则表达式类(Regex class).

使用正则表达式类

加入使用using前缀的语句导入System.Text.RegularExpressions命名空间.

上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页 




上一篇:ASP.NET性能最佳实践

下一篇:调用存储过程并且使用返回值的基本方法

在ASP.NET中防止注入攻击[翻译] 相关文章:
·深入剖析恶意攻击性网页-注册表全攻略
·在线翻译谁更厉害——四大流行系统对比
·防止数码照片模糊的三种方法
·中老年人的性事特点和如何防止性早衰
·免费英语在线翻译
·黑客发布针对微软软件漏洞的攻击新代码
·黑客的社会工程攻击新技术:机遇型攻击
·网络安全专家支招防范黑客攻击九大方法
·Windows Live Translator在线翻译服务上线
·一网打尽网页在线即时翻译
在ASP.NET中防止注入攻击[翻译] 相关软件:
·朗道(电脑词典,翻译系统) V5.0
·手机炸弹-短信息攻击懒人版
·2006年考研英语强化班·翻译 唐静 07
·历年考研英语真题阅读理解部分中文翻译(1992—2003年word版)
·同声传译实用中日口译即席翻译2
·大众翻译软件(时代翻译通)V7.0
·重返狼穴3:悍马攻击(Humvee Assault)
·绝地攻击机(Desperate Space)
·空袭Ⅱ:空中攻击机二代 (Airstrike II: Gulf Thunder) V2.58
·超级足球攻击者(Grand Striker)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot