`

谈谈防 SQL 注入式攻击策略

阅读更多

谈谈防 SQL 注入式攻击策略

SQL 注入式攻击是指利用设计上的漏洞, 在目标服务器上运行 SQL 命令以及进行其他方式的攻击, 动态生成 SQL 语句时没有对用户输入的数据进行验证. SQL 注入式攻击是一各常规性的攻击, 可以允许一些不法用户检索他人的数据或改变服务器的设置或者在他人不小心的时候破坏其服务器. SQL 注入式攻击不是 SQL Server 问题, 而是不适当的程序.
要防范 SQL 注入式攻击, 应该注意以下几点:
(1). 检查输入的 SQL 语句的内容, 如果包含敏感字符, 则删除敏感字符, 一般敏感字符包括: ', >, <=, !, -, +, *, /, |, 空格等.
(2). 不要在用户输入过程中构造 WHERE 子句, 应该利用参数来使用存储过程.
因为 SQL 注入一般出现在程序开发构造一个 WHERE 子句伴随着用户输入的时候.
过滤非法字符的两种方法:
(1). 在 ASP.NET 可以自定义一个方法过滤非法字符, 效率较底, 但对敏感字符的过滤比较彻底. 实现如下:
///<summary>
///防止 SQL 注入式攻击
///</summary>
///<param name="inputString">用户输入字符串</param>
public string ConvertSql(string inputString)
{
inputString = inputString.Trim(); //去空格
inputString = inputString.Replace("'", ""); //去单引号
inputString = inputString.Replace(";", ""); //去分号
inputString = inputString.Replace("=", ""); //去等号
inputString = inputString.Replace("or", ""); //去 or
inputString = inputString.Replace("and", ""); //去 and
inputString = inputString.Replace("like", ""); //去 通配符

//............用户可以根据需要定义任何敏感字符
return inputString;
}

(2).由于上面这种枚举的方法对程序效率显然有影响, 因此并不是最有效的途径.
其实最佳途径可以通过 SqlCommandParameners 属性的参数传值实现, 将非法字符过滤.
原理是SQL 语句在传送过程中参数(用户输入的内容)是不可见的. 自然失去了攻击的机会.
以登录为例, 实现如下:
public int checkLogin(string loginName, string loginPwd)
{
SqlConnection con = new SqlConnection("Server=***;database=***;Uid=sa;Pwd=***");
SqlCommand myCommand = new SqlCommand("select count(*) from user where userName=@loginName and userPwd=@loginPwd", con);
myCommand.Parameters.Add(new SqlParameter("@loginName", SqlDbType.NVarChar, 20));
myCommand.Parameters["@loginName"].Value = loginName;
myCommand.Parameters.Add(new SqlParameter("@loginPwd", SqlDbType.NVarChar, 20));
myCommand.Parameters["@loginPwd"].Value = loginPwd;
myCommand.Connection.Open();
int i = (int)myCommand.ExecuteScalar();
myCommand.Connection.Close();
return i;
}

(3).最实用的方法: 建议大家多写存储过程, 它的作用不再仅仅是大家认为的那样起到提供一个接口, 提高执行速度等作用, 当今系统对性能和安全的要求已上升到主要位置.不用担心过多的建立存储过程会给服务器带来负担, 也不要认为书写存储过程麻烦, 当一个庞大的系统把大量的时间花在 SQL 语句的维护与解析和对系统安全的防范时, 这种麻烦完全是值得的. 最明显的优点是当你多建一个存储过程, 少一句前台 SQL 语句时: 便可兼得提高效率与防 SQL 注入式攻击, 何乐而不为呢?

分享到:
评论

相关推荐

    SQL注入攻击实验报告

    - **实验目的**:本实验旨在通过搭建一个简单的Web应用程序,模拟SQL注入攻击的过程,并探讨相应的防御措施,帮助理解SQL注入攻击的基本原理及其防范策略。 #### 二、实验原理 - **SQL注入的概念**:SQL注入是一种...

    SQL注入攻击与防御技术白皮书.pdf

    SQL注入攻击与防御技术白皮书.pdf 本文档主要介绍了SQL注入攻击的原理、方式、危害及防御措施,旨在帮助读者更好地理解和防御这种常见的数据库漏洞攻击方式。 1.SQL注入攻击简介 SQL注入攻击是一种针对数据库的...

    最新ASP通用防SQL注入代码

    从标签"防注入"、"最新ASP SQL注入代码"、"最新ASP通用防SQL注入代码"我们可以看出,这个压缩包文件的核心内容是关于防止ASP应用程序遭受SQL注入攻击的代码示例,它适用于各种ASP应用场景。 在压缩包内的文件"通用...

    C#防SQL注入

    C#防SQL注入是指在C#程序中防止SQL注入攻击的方法。SQL注入是一种常见的Web应用程序安全漏洞,攻击者可以通过在输入字段中.inject恶意SQL代码,来访问、修改或删除数据库中的数据。为了防止SQL注入,C#程序需要对...

    ASP.NET中如何防范SQL注入式攻击

    ASP.NET中如何防范SQL注入式攻击 一、什么是SQL注入式攻击?  所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的...

    SQL注入攻击与防御

    SQL注入攻击的危害极大,可以轻松突破传统的身份验证系统,因此,了解和掌握SQL注入攻击与防御策略对于保护信息系统至关重要。 在早期的Web应用开发中,由于对安全性的重视不足,SQL注入漏洞普遍存在,导致许多网站...

    防SQL注入组件

    防SQL注入组件

    C#防SQL注入代码的三种方法

    对于网站的安全性,是每个网站开发者和运营者最关心的问题。网站一旦出现漏洞,那势必将造成很大的损失。为了提高网站的安全性,首先网站要防注入,最重要的是服务器的安全... C#防SQL注入方法一  在Web.config文件中

    sql注入法攻击sql注入法攻击.rar

    "sql注入法攻击.sql注入法攻击.rar"这个文件很可能是关于如何预防和应对SQL注入攻击的教学资料。 在了解SQL注入攻击之前,我们首先要明白SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。...

    SQL注入攻击与防御 第2版.pdf

    《SQL注入攻击与防御 第2版》是一本深入探讨网络安全领域中SQL注入问题的专业书籍。SQL注入是网络攻击的一种常见手法,它利用了应用程序对用户输入数据处理的不当,允许攻击者通过输入恶意的SQL代码来操纵数据库,...

    基于ESAPI的防sql注入jar包及使用示例.rar

    总的来说,基于ESAPI的防SQL注入策略是通过预先定义好的安全规则和编码机制,确保用户输入不会破坏SQL语句的结构,从而保障系统的安全性。结合适当的编程实践和安全设计,可以显著降低SQL注入的风险。

    SQL防注入式攻击源代码

    ### SQL防注入式攻击源代码知识点解析 #### 一、SQL注入概述 SQL注入是一种常见的安全漏洞,攻击者可以通过在应用程序的输入字段中插入恶意SQL语句来操纵数据库执行非授权操作。这种攻击可能导致敏感数据泄露、...

    通用防SQL注入漏洞程序(Global.asax方式)_aspx开发教程.rar

    本教程将详细讲解如何使用Global.asax文件来实现一个通用的防SQL注入策略,以保护ASP.NET应用程序不受此类攻击。 一、SQL注入的原理与危害 SQL注入主要是利用了程序处理用户输入时未进行充分验证的漏洞。攻击者可以...

    歼灭SQL注入式攻击.pdf

    SQL注入式攻击是一种常见的网络攻击手段,其本质是利用了应用程序在处理用户输入时的安全漏洞,通过输入恶意的SQL代码,使得攻击者能够对数据库进行非法查询和操作。这种攻击不仅威胁到数据的安全性,还有可能破坏...

    360提供的php防sql注入代码修改类

    本文将深入探讨360提供的PHP防SQL注入代码修改类,以及如何通过此类来防范这两种攻击。 一、SQL注入 SQL注入是一种利用网站应用程序的漏洞,通过输入恶意SQL语句来控制数据库的攻击手段。攻击者可以获取、修改、...

    ASP.NET中如何防范SQL注入式攻击.pdf

    在***开发中,SQL注入式攻击是一种常见的网络攻击手段,攻击者通过在Web表单的输入域或查询字符串中插入SQL代码片段,试图...通过这样综合性防御策略,可以极大提升Web应用程序的安全性,降低遭受SQL注入式攻击的风险。

    信息安全技术之SQL注入式攻击

    信息安全技术之SQL注入式攻击 SQL注入式攻击是一种常见的网络攻击方式,通过将恶意的SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。这种攻击方式可以让攻击者获得...

    sql注入sql注入sql注入sql注入sql注入

    sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入sql注入

    sql注入和防SQL注入

    SQL注入是一种常见的网络安全威胁,它允许攻击者通过输入恶意的SQL语句来操纵数据库系统,获取敏感信息,甚至破坏整个数据库。本节将深入探讨SQL注入的原理、危害以及如何防范这种攻击。 **SQL注入原理** SQL注入是...

Global site tag (gtag.js) - Google Analytics