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

 

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

在ASP.NET中防止注入攻击

http://www.iyit.net  日期:2006-6-2 15:10:28  来源:  点击:
参加讨论.目的:

  • 对输入的字串长度,范围,格式和类型进行约束.
  • 在开发ASP.NET程序时使用请求验证防止注入攻击.
  • 使用ASP.NET验证控件进行输入验证.
  • 对不安全的输出编码.
  • 使用命令参数集模式防止注入攻击.
  • 防止错误的详细信息被返回到客户端.

      概述 :


      你应该在程序中验证所有的不信任输入.你应该假定所有的用户输入都是非法的.用户可以在应用程序中提供表单字段,查询字串,客户端cookies和浏览器环境值比如用户代理字串和IP地址等.

      弱输入校验通常为注入攻击提供了机会.下面是常见的利用弱输入校验或无输入校验进行攻击的手段.
  • SQL 注入(SQL injection). 如果你使用用户的输入值来动态构造SQL语句,那么数据库可能执行攻击性的有害SQL语句.
  • 跨站脚本(Cross-site scripting). 跨站脚本攻击利用网页验证漏洞注入客户端脚本.接下来这些代码被发送到受信任的客户端电脑上并被浏览器解释执行.因为这些代码来自受信任的站点,所以浏览器无法得知这些代码是有害的.
  • 未授权的文件访问(Unauthorized file access).如果你的代码从调用者那里接受输入,恶意用户可以看到你对文件的操作过程从而访问那些受保护的文件或者使用你的代码注入非法数据.

      注意 : 注入攻击可通过使用HTTP或HTTPS Secure Socket Layer(SSL) 连接. 传输加密技术不能用来防御攻击.

      通常的输入验证方法总结如下.你应在所有的需要通过网络输入的地方进行验证,比如文本框和其它表单输入字段, 查询字串参数,cookies,服务器端变量和网络方法参数.注意,过滤策略应该是只允许正确的输入然后拒绝非法输入.这是因为定义正确的输入策略比过滤所有的非法输入要容易,那通常很难包括所有的非法输入.

      通入如下几个方面验证输入内容:
  • 约束.验证是否输入的是正确的类型,字符长度,格式和范围.可以应用ASP.NET验证控件来约束服务器控件输入.约束其它来源的输入可以使用正则表达式和自定义的验证规则.
  • 拒绝.检测已知的有害数据输入并拒绝.
  • 过滤.有时候你会希望过滤掉用户输入中那些有安全隐患的那些部分.例如,你的程序允许自由格式的输入,比如备注字段,你会允许特定的安全HTML标记象<b>,<i>及其它的HTML标记.

      步骤提要

      通过以下步骤保护你的ASP.NET程序不受注入式攻击危害 :
  • 第一步.使用ASP.NET请求验证.
  • 第二步.约束输入.
  • 第三步.对不安全的输出进行编码.
  • 第四步.对SQL查询语句使用命令参数.
  • 第五步.验证ASP.NET的出错信息没有泄漏至客户端.

      下面的章节将对这些步骤进行详细讨论.

      第一步.使用ASP.NET请求验证.

      默认地,ASP.NET 1.1和2.0请求验证会对送至服务器的数据检测是否含有HTML标记元素和保留字符.这可以防止用户向程序中输入脚本.请求验证会对照一个有潜在威胁的字符串列表进行匹配,如果发现异常它会抛出一个HttpRequestValidationException类型的异常.

      你可以在你的web.config文件中的<pages>元素中加入validateRequest="false" 或在单独的页面的@Pages元素里面设置ValidateRequest = "false"来禁用此项功能.

      如果你想禁用请求验证功能,你可以仅在需要的页面禁用它.比如你在程序页面上包含一个可接受HTML格式输入的字段.

      确定在Machine.config文件中请求验证功能被打开.
     
      请求验证功能在ASP.NET中被默认启用.你可以在Machine.config.comments文件中看到如下的默认设置.

    <pages validateRequest = "true" ... />

      确认你没有修改你的服务器的Machine.config和应用程序的Web.config文件里的默认设置.

      测试ASP.NET请求验证

      你可以测试请求验证的作用.创建一个ASP.NET页面通过设置ValidateRequest = "fasle"禁用请求验证,代码如下 :

    <%@ Language="C#" ValidateRequest="false" %>
    <html>
    <script runat="server">
  • 本新闻共6页,当前在第1页  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
    易特网络技术 点击这里给我发消息