asp网站SQL注入攻击方式和防范模型,asp论文.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《asp网站SQL注入攻击方式和防范模型,asp论文.docx》由会员分享,可在线阅读,更多相关《asp网站SQL注入攻击方式和防范模型,asp论文.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、asp网站SQL注入攻击方式和防范模型,asp论文ASP NET 是微软公司的一项 Web 应用开发技术,因其具有跨平台性、易于部署、简单易学等众多优点,被广泛应用在 Web 开发中。当前的 ASP NET应用程序主要以数据处理为中心,应用的数据访问技术以 ADO NET 为主。但是使用 ADO NET 进行数据访问时需要编写大量包含参数的 SQL 语句,恶意用户有可能利用这些参数通过注入攻击的方式毁坏数据库的安全性。这种利用 SQL 注入漏洞进行攻击的方式方法也成为 Web 应用程序最为严重的安全风险之一,怎样最大程度降低注入风险,从根本上防备注入攻击,成为开发人员亟待解决的问题。本文首先分
2、析 SQL 注入攻击原理和流程,然后针对 ASPNET 应用程序的数据访问技术,提出一种三层注入防备模型。1 SQL 注入攻击概述SQL 注入攻击指的是恶意用户将特定的 SQL 命令插入到表单输入框或页面请求的查询字符串中,猜想可能构成符合语法的 SQL 语句,进而到达欺骗服务器执行特定 SQL 命令并毁坏数据库安全性的目的。1 1 SQL 注入流程在 ASP NET 应用程序开发经过中经常使用 Ac-cess 或 SQLServer 管理数据库,由于这 2 种数据库管理系统中系统变量和系统表有所不同,所以进行 SQL注入攻击时会首先判定应用程序访问数据库的种类。能够将 SQL 注入攻击的基本
3、流程分为3 个环节:( 1) 检测应用能否存在 SQL 注入点。能够在输入参数值中添加 ,然后根据阅读器返回信息进行判定;( 2) 判定数据库管理系统类型。若存在 SQL 注入点,能够利用 2 种数据库管理系统中系统变量和系统表的区别判定详细类型;( 3) 进行攻击。判定出数据库管理系统类型后,获取操作权限并毁坏数据库安全性和完好性。1 2 注入攻击常见方式SQL 注入攻击的根本途径是通过用户不断地恶意输入完成的,而在 ASP NET 应用程序运行经过中能够接收用户输入的方式方法主要有 3 种: ( 1) 表单输入元素获取输入值; ( 2) UL 参数重写; ( 3) 修改Cookies 文件
4、内容。针对 SQLServer 数据库管理系统而言,攻击者能够采用的详细攻击方式如表 1 所示。2 防备模型通过分析可知,ASP NET 应用程序中存在的SQL 注入攻击主要是利用带有特征输入字符串和无明显特征的攻击字符串进行的。为了更好保卫数据库安全性,降低 SQL 注入攻击风险,本文提出从 3 个层次构建注入攻击防备模型。2 1 三层防备模型三层防备模型中的第一层主要过滤带有明显特征的输入字符串,通过过滤函数的应用拒绝已经知道的恶意用户输入; 第二层对用户输入进行参数化,通过使用绑定变量方式解决和避免一般的 SQL 注入问题;第三层是结合实际应用拒绝无明显特征的攻击字符串,通过对 SQL
5、语句中的本文关键词语进行转义实现。三层模型构造如此图 1 所示。2 2 SQL 过滤SQL 过滤是注入攻击防备模型的第一层,主要过滤页面表单中可编辑文本框的输入值和 UL 中的查询参数,若包含带攻击特征的字符则将特征字符去掉后向下执行。在 SQLServer 2005 中自定义过滤函数StringFilter,将 用 户 输 入 中 的 特 征 字 符 过 滤 掉。StringFilter 函数的声明语句如下:StringFilter( input_str varchar( MAX) , from_str var-char( MAX) , to_str varchar( MAX) )参数 in
6、put_str 表示需要进行过滤的字符串,from_str 表示特征字符组成的集合, to_str 表示特征字符过滤的结果,函数返回值是将 from_str 中的每个字符替换为 to_str 中的相应字符之后的字符串。过滤函数 StringFilter 的设计算法如下:( 1) 判定 3 个参数能否为空值,若有空值则函数返回空值; 若都不为空,执行( 2) ;( 2) 定义变量 result 表示 input_str,变量from_len 表示 from_str 的长度,若 from_len 大于0,获取最后一个即将替换的字符; 若 from_len 等于0,函数返回 result;( 3)
7、假如当下字符在 from_str 中有重复值,from_len 自减 1,执行( 2) ; 若没有重复值则执行( 4) ;( 4) 假如 from_len 大于 to_str 的长度,则从result 中删除在 from_str 中而不在 to _str 中的字符,执行( 6) ; 否则,执行( 5) ;( 5) 将 result 中与 from_str 中一样的字符替换为 to_str 中相应字符;( 6) 将 from_len 自减 1,执行( 2) 。2 3 参数化语句经过 SQL 参数过滤后,常见的特征字符被替换,但是未被指定为特征字符的合法 SQL 标示符将绕过过滤。考虑到 SQL
8、注入攻击大部分是由于在程序中采用动态字符串或动态 SQL 引起的,所以注入攻击防备模型的第二层是采用绑定变量的方式将用户提交的数据进行参数化处理。假设存在关系 Table,Table 中包含 2 个字符串类型的属性 ColA 和 ColB。从页面传递 2 个字符串 strA和 strB 进行查询操作。动态 SQL 语句的定义如下:string sql = select* from Table where ColA = + strA +and ColB = + strB +改用参数化语句则按下面语句:stringsql = select * from Table where ColA = str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文化交流
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内