|
|
|||
发布日期:2011-01-19
攻击名称:sql注入攻击
操作系统:Windows
应用服务:其它
严重级别:
BUG ID:
CVE ID:
| 描述:
|
SQL注入攻击(SQLinjection),简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的数据字符串之中夹带SQL指令,在设计不良的程序当中忽略了检查,那么这些夹带进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此招致到破坏。
影响:
数据表中的数据外泄,例如个人机密数据,帐户数据,密码等。
数据结构被黑客探知,得以做进一步攻击。
数据库服务器被攻击,系统管理员帐户被窜改。
取得系统较高权限后,有可能得以在网页加入恶意链接以及XSS。
经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
破坏硬盘数据,瘫痪全系统。
影响系统:
N/A
参考:
http://zh.wikipedia.org/wiki/SQL%E8%B3%87%E6%96%99%E9%9A%B1%E7%A2%BC%E6%94%BB%E6%93%8A
| 解决方案:
|
在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据访问功能。
在组合SQL字符串时,先针对所传入的参数作字符取代(将单引号字符取代为连续2个单引号字符)。
如果使用PHP开发网页程序的话,亦可打开PHP的魔术引号(Magic quote)功能(自动将所有的网页传入参数,将单引号字符取代为连续2个单引号字符)。
其他,使用其他更安全的方式连接SQL数据库。例如已修正过SQL注入问题的数据库连接组件,例如ASP.NET的SqlDataSource对象或是 LINQ to SQL。
使用SQL防注入系统。