通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>NET专区>>正文 新版上线![旧版]
注:打开慢时请稍等

在ASP.NET中防止注入攻击

http://www.iyit.net  日期:2006-6-2 15:10:28  来源:  点击:
参加讨论
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).

      使用正则表达式类
    1. 加入使用using前缀的语句导入System.Text.RegularExpressions命名空间.
    2. 确认正则表达式包含"^"和"$"(字串开始处,字串结束处).
    3. 调用Regex类的IsMatch方法,下面是代码示例.
    //
    Instance method:

    Regex reg = new Regex(@"^[a-zA-Z'.\s]{1,40}$");
    Response.Write(reg.IsMatch(txtName.Text));
    //
    Static method:

    if (!Regex.IsMatch(txtName.Text,@"^[a-zA-Z'.\s]{1,40}$"))

    本新闻共6页,当前在第2页  1  2  3  4  5  6  


    编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
    上一篇:ASP.NET 2.0站点登录、导航与权限管理
    下一篇:ASP.NET页面中标题单点解决方案
    转载请注明来源:www.iyit.net
    特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

  •  相关文章
    在ASP.NET中自动给URL加上超链接 ASP.NET Atlas ListView显示列表数据 ASP.NET编程入门随想之信客
    用VS2005实现ASP.NET2.0移动开发 在ASP.NET Atlas中创建自定义Behavior ASP.NET 2.0中轻松实现网站换肤
    ASP.NET 2.0 中的代码隐藏和编译 ASP.NET入门随想之服务器控件模型 ASP.NET页面中标题单点解决方案
    ASP.NET 2.0站点登录、导航与权限管理 asp.net面试试题收集 ASP.NET服务器控件编程之热身运动
    ASP.NET 2.0 中的异步页功能应用 用ASP.NET开发Web服务的五则技巧 ASP.NET中Cookie编程的基础知识(1)
    ASP.NET中Cookie编程的基础知识(2) ASP.NET中Cookie编程的基础知识(3) ASP.NET中Cookie编程的基础知识(4)
    ASP.NET中Cookie编程的基础知识(5) ASP.NET中Cookie编程的基础知识(6) ASP.NET 2.0移动开发入门之基础
    ASP.NET中文件上传下载方法集合 ASP.NET服务器控件之RenderContents ASP.NET2.0服务器控件之Render方法
    最新更新 热点排行 推荐新闻
    在ASP.NET中自动给URL加上超链接
    ASP.NET Atlas ListView显示列表数据
    ASP.NET编程入门随想之信客
    用VS2005实现ASP.NET2.0移动开发
    在ASP.NET Atlas中创建自定义Behavior
    在ASP.NET中自动给URL加上超链接
    ASP.NET Atlas ListView显示列表数据
    ASP.NET编程入门随想之信客
    用VS2005实现ASP.NET2.0移动开发
    在ASP.NET Atlas中创建自定义Behavior
    ASP.NET 2.0中轻松实现网站换肤
    ASP.NET 2.0 中的代码隐藏和编译
    ASP.NET入门随想之服务器控件模型
    ASP.NET页面中标题单点解决方案
    在ASP.NET中防止注入攻击
    为ASP.NET 2.0菜单控件增加target属性
    ASP.NET 2.0 中的异步页功能应用
    将Asp.net页面输出为HTML
    HTML简介
    设定Cookie 变量的生命周期
    优秀公益广告作品欣赏(8)
    java数据类型转换
    QQ最新版下载 2006 beta2 体验新感受 
    Windows XP专业版IIS连接数的更改
    优秀公益广告作品欣赏(7)
    Office2007简体中文版浮出水面 美图抢
    优秀公益广告作品欣赏(6)
    WEB服务器配置全攻略(三)
    优秀公益广告作品欣赏(4)
    优秀公益广告作品欣赏(1)
    在ASP.NET中防止注入攻击
    ASP.NET 2.0 中的异步页功能应用
    在ASP.NET中防止注入攻击
    Linux操作系统12则经典应用技巧
    浅谈Linux优化及安全配置的个人体会
    解决局域网不能互相访问之全攻略
    WIN 2000简单的入侵常识
    用Win 2003架设邮件服务器
    硬盘分区消失,解决方法!
    传统计算机病毒传播能力破坏性在提高
    内存为何有“两面性”
    AMD水货盒装CPU识别方法

     友情链接
    设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
    Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
    网站合作、广告联系QQ:147007642、466949678
    易特网络技术 点击这里给我发消息
    =_blank>冀ICP备05011851号