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

五种常见的ASP.NET应用程序安全缺陷

www.xker.com 作者: 来源:51cto 加入日期:2006-4-8 6:17:00

【问题提问、论坛交流】 

一、不能盲目相信用户输入

在Web应用开发中,开发者最大的失误往往是无条件地信任用户输入,假定用户(即使是恶意用户)总是受到浏览器的限制,总是通过浏览器和服务器交互,从而打开了攻击Web应用的大门实际上,黑客们攻击和操作Web网站的工具很多,根本不必局限于浏览器,从最低级的字符模式的原始界面(例如telnet),到CGI脚本扫描器、Web代理、Web应用扫描器,恶意用户可能采用的攻击模式和手段很多

因此,只有严密地验证用户输入的合法性,才能有效地抵抗黑客的攻击应用程序可以用多种方法(甚至是验证范围重叠的方法)执行验证,例如,在认可用户输入之前执行验证,确保用户输入只包含合法的字符,而且所有输入域的内容长度都没有超过范围(以防范可能出现的缓冲区溢出攻击),在此基础上再执行其他验证,确保用户输入的数据不仅合法,而且合理必要时不仅可以采取强制性的长度限制策略,而且还可以对输入内容按照明确定义的特征集执行验证下面几点建议将帮助你正确验证用户输入数据:

⑴ 始终对所有的用户输入执行验证,且验证必须在一个可靠的平台上进行,应当在应用的多个层上进行

⑵ 除了输入、输出功能必需的数据之外,不要允许其他任何内容

⑶ 设立“信任代码基地”,允许数据进入信任环境之前执行彻底的验证

⑷ 登录数据之前先检查数据类型

⑸ 详尽地定义每一种数据格式,例如缓冲区长度、整数类型等

⑹ 严格定义合法的用户请求,拒绝所有其他请求

⑺ 测试数据是否满足合法的条件,而不是测试不合法的条件这是因为数据不合法的情况很多,难以详尽列举

二、五种常见的ASP.NET安全缺陷

下面给出了五个例子,阐述如何按照上述建议增强应用程序的安全性这些例子示范了代码中可能出现的缺陷,以及它们带来的安全风险、如何改写最少的代码来有效地降低攻击风险

2.1 篡改参数



◎ 使用ASP.NET域验证器

盲目信任用户输入是保障Web应用安全的第一敌人用户输入的主要来源是HTML表单中提交的参数,如果不能严格地验证这些参数的合法性,就有可能危及服务器的安全

下面的C#代码查询后端SQL Server数据库,假设user和password变量的值直接取自用户输入:

SqlDataAdapter my_query = new SqlDataAdapter(

 "SELECT * FROM accounts WHERE acc_user='" + user + "' AND acc_password='" + password, the_connection);  

从表面上看,这几行代码毫无问题,实际上却可能引来SQL注入式攻击攻击者只要在user输入域中输入“OR 1=1”,就可以顺利登录系统,或者只要在查询之后加上适当的调用,就可以执行任意Shell命令:

'; EXEC master..xp_cmdshell(Oshell command here')--  

■ 风险分析

在编写这几行代码时,开发者无意之中作出了这样的假定:用户的输入内容只包含“正常的”数据——合乎人们通常习惯的用户名字、密码,但不会包含引号之类的特殊字符,这正是SQL注入式攻击能够得逞的根本原因黑客们可以借助一些具有特殊含义的字符改变查询的本意,进而调用任意函数或过程

■ 解决方案

域验证器是一种让ASP.NET开发者对域的值实施限制的机制,例如,限制用户输入的域值必须匹配特定的表达式

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

编辑:xker.com

上一篇:ASP.NET的安全漏洞
下一篇:没有了
关闭窗口】【技术交流】【收藏此页
相关文章
·ASP.NET的安全漏洞·进行ASP.NET Web安全验证方法·利用ASP.NET 的内置功能抵御 Web 攻击
·ASP.NET中如何防范SQL注入式攻击·在ASP.NET中访问SQL Server·用ObjectSpaces重建IBuySpy的数据访问
·ASP.NET:访问Excel 电子表格·用ASP.NET在同一网页中显示主从关系表·ASP.NET+MySQL:强势组合
·asp.net 2.0中的URL重写以及urlMappi·ASP.NET 2.0无刷新页面新境界·在ASP.net中使用OWC绘制统计图表
·ASP.NET中Web DataGrid的使用指南·ASP.NET编程中的技巧·几个ASP.NET技巧
推荐文章 最新文章 热门文章
·使用xml http为网站增加域名查询功能
·黑客技术揭秘:三招确定WWW服务类型
·联手杀毒软件 打造无毒迅雷下载文件
·Tomcat 配置技巧精华详解分析
·玩转系统 Window系统补丁知多少
·做好备份 硬盘数据大迁移
·中用也中看 全面打造个性化迅雷下载
·WIN2000下JSP服务器的安装
·Oracl数据库中大数据的备份
·用注册表找回常用软件序列号
·搜索引擎优化的最高境界是忘记搜索引
·全面解析系统剪贴功能资源占用
·在ASP.NET中防止注入攻击
·仅用css编写无限分级弹出菜单
·完整图解Tomcat 5.0.28 安装笔记
·五种常见的ASP.NET应用程序安全缺陷
·ASP.NET的安全漏洞
·“弹出广告”扰人 谁来捍卫网民利益
·用Dreamweaver制作特色分隔线
·ASP实现简单的网页保护
·使用xml http为网站增加域名查询功能
·文字,你到底能多大?---分析网页文字
·进行傻瓜式攻击 揭露工具黑客的秘密
·黑客技术揭秘:三招确定WWW服务类型
·全接触sqlserver异常与孤立事务
·用DTS导入多个文件数据到SQL Server中
·层层剖析 挖掘液晶显示器的秘密
·通过禁止使用xp_cmdShell提高安全
·进行ASP.NET Web安全验证方法
·利用ASP.NET 的内置功能抵御 Web 攻击
·个人简历表格
·免费代理IP(每日更新)
·QQ密码丢失后能做的事情:快速找回密码
·QQ收费头像免费使用的方法 
·Norton AntiVirus 2006 注册码(激活
·系统优化 专题
·WinRAR 3.51 注册码
·豪杰超级解霸V9.1正版注册码
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·QQ空间皮肤代码
·最经典的黑客入门教材
·求职简历封皮
·ACDSee v8.0注册码
评论

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