WEB开发网
开发学院数据库MSSQL Server SQL 安全性: 新型 SQL 截断攻击和防御方法 阅读

SQL 安全性: 新型 SQL 截断攻击和防御方法

 2009-02-10 10:23:52 来源:WEB开发网   
核心提示:本文讨论: 分隔标识符和字符串 实用的 T-SQL 函数 截断和修改攻击 找出 Bug 和漏洞 本文使用了以下技术:SQL Server 目录 分隔标识符和字符串T-SQL 函数SQL 注入漏洞通过截断进行修改通过截断进行 SQL 注入通过截断检测注入利用 SQL 注入方法的漏洞攻击已经引起了广泛关注,因为这些漏洞能够

本文讨论:

分隔标识符和字符串

实用的 T-SQL 函数

截断和修改攻击

找出 Bug 和漏洞

本文使用了以下技术:

SQL Server

SQL 安全性: 新型 SQL 截断攻击和防御方法目录

分隔标识符和字符串

T-SQL 函数

SQL 注入漏洞

通过截断进行修改

通过截断进行 SQL 注入

通过截断检测注入

利用 SQL 注入方法的漏洞攻击已经引起了广泛关注,因为这些漏洞能够穿过防火墙和入侵检测系统,从而破坏您的数据层。无论是第一级还是第二级注入攻击,如果您看一下基本的代码模式,它与其他任何注入攻击问题都类似,即您在构造语句时都使用了不受信任的数据。大多数开发人员已经开始通过在后端使用参数化 SQL 查询和存储过程来减少 Web 前端的这些漏洞,但有些情况下,开发人员仍使用动态构建的 SQL,例如根据用户输入或为 C/C++ 编写的应用程序构造数据定义语言 (DDL) 语句时。

在本文中我将讨论一些新观点,其结果可能会修改 SQL 语句或注入 SQL 代码,即使代码对分隔字符进行了转义。我首先介绍一些构建分隔标识符和 SQL 字符串的最佳实践,然后我将介绍攻击者注入 SQL 代码的几种新方法,以帮助您保护您的应用程序。

分隔标识符和字符串

在 SQL Server™ 中,有两种字符串变量:唯一可识别 SQL 对象(如表、视图和存储过程)的 SQL 标识符,以及用于表示数据的字符串。分隔 SQL 标识符的方法与分隔数据字符串的方法不同。我们将讨论需要使用这些数据变量的动态 SQL 构建方法的最佳实践。

如果 SQL 对象名使用了关键字,或者对象名中包含了特殊字符,则您需要使用分隔标识符。假如您需要删除 my_dbreader 登录名,则可以执行以下语句:

1 2 3 4 5 6  下一页

Tags:SQL 安全性 新型

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接