论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>编程开发>>net专区>>正文

在ASP.NET中防止注入攻击

www.xker.com 作者: 来源:博客网 加入日期:2006-4-2 8:25:31

【问题提问、论坛交流】目的:

  • 对输入的字串长度,范围,格式和类型进行约束.
  • 在开发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格式输入的字段.

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

    编辑:xker.com
    上一篇:ASP.NET中使用Caching
    下一篇:没有了
  • 关闭窗口】【技术交流】【收藏此页
    相关文章
    ·ASP.NET中使用Caching·用ASP.NET画拼图·一个ASP.NET的进度条
    ·ASP.Net的Cookie实现·在ASP.NET中绑定XML数据·ASP.NET如何操作文件
    ·让Apache支持ASP.NET·让Asp.NET DataGrid可排序,选择,分页·用ASP.NET显示在线登陆人数及位置
    ·ASP.NET缓存:方法分析和实践示例·在ASP.NET 中为图像加入版权信息·用Asp.net实现简单的文字水印
    ·在Apache环境下成功的运行ASP.NET·ASP.NET 2.0 中的数据源控件·ASP.NET程序数组功能调用
    推荐文章 最新文章 热门文章
    ·在ASP.NET中防止注入攻击
    ·仅用css编写无限分级弹出菜单
    ·完整图解Tomcat 5.0.28 安装笔记
    ·用Java快速开发Linux GUI应用
    ·妙用Windows磁盘配额 让黑客无从下手
    ·在Linux3.0下安装DB28.2
    ·选购液晶牢记三大注意事项
    ·详解TCP端口:作用,漏洞,操作详析
    ·从此不再心头痛 数据库连接方法总结
    ·网络应用技巧 用注册表强化网上邻居
    ·JMX+J2SE5.0实现Web应用的安全管理
    ·小工具大用处 让网吧线路可以自由切换
    ·C#利用Web Service实现短信发送
    ·用VB6.0实现网络实时监控系统
    ·MP4播放器玩转字幕—— 从Sub到Srt
    ·在ASP.NET中防止注入攻击
    ·AJAX编程实践之与服务器通信
    ·如何在VB中终止Windows系统
    ·Sniffer黑客教程
    ·自我介绍范文
    ·巧用拼音加加内置功能提升输入速度
    ·引入css样式表的四种方式介绍
    ·仅用css编写无限分级弹出菜单
    ·准确找出QQ群里长期潜水的成员踢出去
    ·Tomcat+SQL Server2000连接池配置
    ·完整图解Tomcat 5.0.28 安装笔记
    ·几种打开记录集方式的比较
    ·ASP.NET中使用Caching
    ·用ASP.NET画拼图
    ·一个ASP.NET的进度条
    ·个人简历表格
    ·免费代理IP(每日更新)
    ·QQ收费头像免费使用的方法 
    ·QQ密码丢失后能做的事情:快速找回密码
    ·Norton AntiVirus 2006 注册码(激活
    ·系统优化 专题
    ·豪杰超级解霸V9.1正版注册码
    ·WinRAR 3.51 注册码
    ·找回QQ密码的注意事项 
    ·史上最强QQ个人档案资料欣赏
    ·Ajax技术开发指南
    ·最经典的黑客入门教材
    ·QQ空间皮肤代码
    ·求职简历封皮
    ·ACDSee v8.0注册码
    评论

    设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
    Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
    本页浏览次数: