`

谈谈防 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 注入式攻击, 何乐而不为呢?

分享到:
评论

相关推荐

    net中sql注入式攻击与防范秘籍

    ### .NET中SQL注入式攻击与防范秘籍 #### SQL注入概述 SQL注入是一种常见的网络安全攻击方式,攻击者通过在数据库查询中插入恶意SQL语句,以达到非法获取数据、篡改数据甚至控制整个数据库的目的。对于使用.NET...

    SQL注入攻击实验报告

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

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

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

    SQL注入攻击与防御.pdf

    3. SQL注入的防御策略:本书详细讲解了如何通过编程实践来避免SQL注入攻击,包括代码层面的防御措施和系统架构上的安全设计。这部分是全书的重点,为开发人员和网络管理员提供了实用的防御指导。 4. SQL注入的排查...

    防sql注入式攻击SQLInjection

    防SQL注入是保护Web应用程序免受此类攻击的关键措施。 1. **理解SQL注入原理**: SQL注入的基本原理是利用应用程序处理用户输入数据时的不安全性。如果程序没有正确验证和清理输入,攻击者可以构造特殊的输入,...

    最新ASP通用防SQL注入代码

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

    SQL注入攻击与防御

    另外,《SQL注入攻击与防御》还专门从代码层和系统层的角度介绍了避免SQL注入的各种策略和需要考虑的问题。 《SQL注入攻击与防御》主要内容: SQL注入一直长期存在,但最近有所增强。《SQL注入攻击与防御》包含所有...

    防止SQL注入式攻击

    SQL注入式攻击是一种常见的网络安全威胁,它利用了不安全的SQL语句设计,使得恶意用户可以通过输入特定的数据来操纵数据库。这种攻击方式可能导致数据泄露、数据篡改甚至整个系统的瘫痪。以下是一些关于防止SQL注入...

    SQL 注入攻击防御指南.doc

    如何斩断 SQL 注入式攻击的疯狂魔掌? Fuzzing tool 帮助 Oracle DBA 删除 SQL 注入错误 Web 安全性测试——SQL 注入 实例讲解 MYSQL 注入中导出可执行文件至启动项原理μ一ν 实例讲解 MYSQL ...

    PHP中全面阻止SQL注入式攻击

    ### PHP中全面阻止SQL注入式攻击 在当前的网络环境中,Web应用程序的安全性变得尤为重要,而其中SQL注入攻击是常见的安全威胁之一。SQL注入是指攻击者通过将恶意SQL代码插入到应用程序的输入字段中,从而控制数据库...

    在ASP.net中如何预防SQL注入式攻击.pdf

    在***环境下,SQL注入式攻击是一种常见的安全威胁。SQL注入攻击主要通过在用户输入的数据中嵌入恶意SQL代码,进而欺骗数据库服务器执行非法的数据库查询或者命令。该攻击手段的成功实现往往是因为在动态生成SQL命令...

    C# 防止SQL注入式攻击

    本文将深入探讨C#防止SQL注入式攻击的相关知识点,并结合"Ex18_04防止SQL注入式攻击"这一示例进行说明。 1. **理解SQL注入攻击** SQL注入攻击通常发生在应用程序没有正确验证用户输入时,攻击者可以通过输入特定的...

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

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

    SQL注入攻击防御策略的研究.pdf

    SQL注入攻击防御策略的研究 SQL注入攻击是一种常见的网络攻击方式,通过向网站提交恶意的SQL语句,对数据库进行攻击,盗取或修改数据信息。为了防御SQL注入攻击,需要深入了解攻击的场景、策略和流程。 SQL注入...

    《SQL注入攻击与防御 第2版》PDF版本下载.txt

    ### SQL注入攻击与防御知识点详解 #### 一、SQL注入概述 SQL注入是一种常见的Web应用程序安全漏洞,攻击者通过在应用程序的输入字段中插入恶意SQL语句,利用这些语句来操控数据库执行非授权操作。这种攻击方式可以...

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

    基于.NET的SQL注入式攻击防范策略涉及多个方面,是当前网络安全领域中的一个重要课题。本文首先分析了.NET平台下SQL注入式攻击的原理和常见攻击过程,随后提出了相应的防范措施。 1. SQL注入式攻击原理与过程 SQL...

    C#防SQL注入

    在当今网络技术迅猛发展的时代,Web应用的安全问题日益凸显,其中SQL注入攻击作为一种常见的网络攻击手段,对数据库的安全性构成了极大的威胁。C#语言因其在开发Microsoft .NET框架应用程序中的主导地位,常用于开发...

    《SQL注入攻击与防御》PDF版本下载.txt

    综上所述,SQL注入攻击是一种严重的安全威胁,但通过实施上述防御策略可以显著降低受到攻击的风险。对于企业来说,建立一套完善的安全管理体系,结合技术手段和管理措施,是保护数据安全的关键。希望通过对SQL注入的...

    防SQL注入组件

    防SQL注入组件

Global site tag (gtag.js) - Google Analytics