您当前的位置:首页 > 计算机论文>计算机应用论文

基于.NET的SQL注入式攻击及其防范策略

2015-12-15 14:25 来源:学术参考网 作者:未知

摘 要:本文介绍了SQL注入式攻击的基本原理及其对系统的危害,提出了通过多种途径防范SQL注入式攻击的方法,提高了系统的安全性。

关键词:SQL注入式攻击;语句漏洞;LINQ
一、引言
  在网络技术快速发展的今天,网络攻击也日趋严重,因此软件系统的安全性设计显得越来越重要,已经称为一个不可忽视的问题。由于SQL注入式攻击的基础是SQL语法,所以从理论上讲,只要所用数据库管理系统是基于SQL语言的,都有可能受到攻击,因此在系统设计时必须认真考虑如何对SQL注入式攻击进行很好的防范,否者系统运行时可能会出现严重的后果。
二、SQL注入式攻击原理
  SQL注入式攻击(SQL Injection Attack)是一种基于SQL语句漏洞的攻击,也就是说攻击者通过构造一个系统设计之外的输入,把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。SQL注入式攻击具有攻击面广、结构简单、破坏性强等特点。
三、常见的SQL注入攻击方式以及防范策略
  常见的SQL注入式攻击方式:
  (1)、没有才去措施过滤转义字符,如在文本框中输入""';或';1';=';1""之类的内容。
  (2)、利用数据库服务器中的漏洞
  (3)、攻击者利用时间延误衡量页面加载的时间,从而决定所注入的语句是否为真
  针对以上SQL注入式攻击,常用的解决方式有:
  (1)、替换单引号以及删除连字符
  (2)、屏蔽系统出错信息
  (3)、在正式处理数据之前对用户输入进行合法性检查,同时限制输入数据的长度
  (4)、使用存储过程代替SQL 语句执行查询
四、利用LINQ技术防范SQL注入式攻击
  LINQ (Language-Integrated Query,语言集成查询)是微软公司的一项新技术。它将查询功能直接引入到.NET Framework 3.5所支持的编程语言中,查询操作可以通过编程语言自身来传达,而不是以字符串嵌入到应用程序代码中。LINQ可以对任何类型的数据存储进行查询和更新,无论是SQL Server数据库还是XML文档。在构建数据库驱动的应用程序时,LINQ能够使开发人员像管理C#中的对象那样管理相关数据,称为“LINQ to SQL”。 LINQ to SQL使得你将应用程序中的数据作为你所使用的编程语言中的本地对象,简化相关数据管理和数据库连接的复杂性。事实上,你可以通过LINQ显示和操作数据库的数据,而无需你编写任何SQL语句。在运行时刻,LINQ to SQL将嵌入或“集成”到你的代码中的查询转换成SQL,并在数据库系统上执行它们。LINQ to SQL以对象的形式将查询结果返回到应用程序中,完全转移了你与数据库及SQL的交互形式。
   在了解了LINQ的基本思想后,我们通过一个实例来看一下如何运用LINQ to SQL防范SQL注入式攻击,现在我们要在Gridview1网格控件中显示数据,编写如下代码:
  {. . .
  StudentsDataContext db = new StudentsDataContext (connectionString) ;
  GridView1. DataSource = from Student in db. Students
  where Student.ClassID = = txtClassID. Text
  select Student;
  GridView1. DataBind() ;
  }
  在使用了LINQ to SQL后,在运行时生成并在服务器上执行的SQL语句如下所示:
  Select .世纪桥,2007,(3):72- 73.

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页