SQL 安全性: 新型 SQL 截断攻击和防御方法
2009-02-10 10:23:52 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劎绮妵鍕箳鐎n亞浠鹃梺闈涙搐鐎氫即鐛崶顒夋晬婵絾瀵ч幑鍥蓟閻斿摜鐟归柛顭戝枛椤牆顪冮妶搴′簼缂侇喗鎸搁悾鐑藉础閻愬秵妫冮崺鈧い鎺戝瀹撲礁鈹戦悩鎻掝伀缁惧彞绮欓弻娑氫沪閹规劕顥濋梺閫炲苯澧伴柟铏崌閿濈偛鈹戠€n€晠鏌嶆潪鎷屽厡闁汇倕鎳愮槐鎾存媴閸撴彃鍓卞銈嗗灦閻熲晛鐣烽妷褉鍋撻敐搴℃灍闁绘挻娲橀妵鍕箛闂堟稐绨肩紓浣藉煐濮樸劎妲愰幘璇茬闁冲搫鍊婚ˇ鏉库攽椤旂》宸ユい顓炲槻閻g兘骞掗幋鏃€鐎婚梺瑙勬儗閸樺€熲叺婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閳锋垶銇勯幒鍡椾壕缂備礁顦遍弫濠氱嵁閸℃稒鍊烽柛婵嗗椤旀劕鈹戦悜鍥╃У闁告挻鐟︽穱濠囨嚃閳哄啰锛滈梺褰掑亰閸欏骸鈻撳⿰鍫熺厸閻忕偟纭堕崑鎾诲箛娴e憡鍊梺纭呭亹鐞涖儵鍩€椤掑啫鐨洪柡浣圭墪閳规垿鎮欓弶鎴犱桓闂佸湱枪閹芥粎鍒掗弮鍫熷仺缂佸顕抽敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掍胶绠剧€光偓婵犱線鍋楀┑顔硷龚濞咃絿妲愰幒鎳崇喓鎷犻懠鑸垫毐闂傚倷鑳舵灙婵炲鍏樺顐ゆ嫚瀹割喖娈ㄦ繝鐢靛У绾板秹寮查幓鎺濈唵閻犺櫣灏ㄥ銉р偓瑙勬尭濡繂顫忛搹鍦<婵☆垰鎼~宥囩磽娴i鍔嶉柟绋垮暱閻g兘骞嬮敃鈧粻濠氭偣閸パ冪骇鐎规挸绉撮—鍐Χ閸℃ê闉嶇紓浣割儐閸ㄥ墎绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹

核心提示:本文讨论: 分隔标识符和字符串 实用的 T-SQL 函数 截断和修改攻击 找出 Bug 和漏洞 本文使用了以下技术:SQL Server 目录 分隔标识符和字符串T-SQL 函数SQL 注入漏洞通过截断进行修改通过截断进行 SQL 注入通过截断检测注入利用 SQL 注入方法的漏洞攻击已经引起了广泛关注,因为这些漏洞能够
本文讨论:
分隔标识符和字符串
实用的 T-SQL 函数
截断和修改攻击
找出 Bug 和漏洞
本文使用了以下技术:
SQL Server
目录
分隔标识符和字符串
T-SQL 函数
SQL 注入漏洞
通过截断进行修改
通过截断进行 SQL 注入
通过截断检测注入
利用 SQL 注入方法的漏洞攻击已经引起了广泛关注,因为这些漏洞能够穿过防火墙和入侵检测系统,从而破坏您的数据层。无论是第一级还是第二级注入攻击,如果您看一下基本的代码模式,它与其他任何注入攻击问题都类似,即您在构造语句时都使用了不受信任的数据。大多数开发人员已经开始通过在后端使用参数化 SQL 查询和存储过程来减少 Web 前端的这些漏洞,但有些情况下,开发人员仍使用动态构建的 SQL,例如根据用户输入或为 C/C++ 编写的应用程序构造数据定义语言 (DDL) 语句时。
在本文中我将讨论一些新观点,其结果可能会修改 SQL 语句或注入 SQL 代码,即使代码对分隔字符进行了转义。我首先介绍一些构建分隔标识符和 SQL 字符串的最佳实践,然后我将介绍攻击者注入 SQL 代码的几种新方法,以帮助您保护您的应用程序。
分隔标识符和字符串
在 SQL Server™ 中,有两种字符串变量:唯一可识别 SQL 对象(如表、视图和存储过程)的 SQL 标识符,以及用于表示数据的字符串。分隔 SQL 标识符的方法与分隔数据字符串的方法不同。我们将讨论需要使用这些数据变量的动态 SQL 构建方法的最佳实践。
如果 SQL 对象名使用了关键字,或者对象名中包含了特殊字符,则您需要使用分隔标识符。假如您需要删除 my_dbreader 登录名,则可以执行以下语句:
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接