English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 业界动态 >> WEB安全,SQL注入漏洞的加固代码汇总

 

WEB安全,SQL注入漏洞的加固代码汇总

威盾防火墙 2015-01-20

 
[1] SQL 盲注
[2] SQL 注入
[3] XPath 注入
[4] 发现数据库错误模式
[5] 跨站点脚本编制
[6] 使用 SQL 注入的认证旁路
[7] HTTP 响应分割
[8] 链接注入(便于跨站请求伪造)
若干问题的补救方法在于对用户输入进行清理。通过验证用户输入未包含危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务,例如:启动任意 SQL 查询、嵌入将在客户端执行的 Javascript 代码、运行各种操作系统命令,等等。建议过滤出所有以下字符:
[1] |(竖线符号)
[2] & (& 符号)
[3];(分号)
[4] $(美元符号)
[5] %(百分比符号)
[6] @(at 符号)
[7] '(单引号)
[8] "(引号)
[9] \'(反斜杠转义单引号)
[10] \"(反斜杠转义引号)
[11] <>(尖括号)
[12] ()(括号)
[13] +(加号)
[14] CR(回车符,ASCII 0x0d)
[15] LF(换行,ASCII 0x0a)
[16] ,(逗号)
[17] \(反斜杠)
以下部分描述各种问题、问题的修订建议以及可能触发这些问题的危险字符:SQL 注入和 SQL 盲注:A. 确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。当使用存储过程时,请利用 ADO 命令对象来实施它们,以强化变量类型。C. 清理输入以排除上下文更改符号,例如:
[1] '(单引号)
[2] "(引号)
[3] \'(反斜线转义单引号)
[4] \"(反斜杠转义引号)
[5] )(结束括号)
[6] ;(分号)
跨站点脚本编制:A. 清理用户输入,并过滤出 JavaScript 代码。我们建议您过滤下列字符:
[1] <>(尖括号)
[2] "(引号)
[3] '(单引号)
[4] %(百分比符号)
[5] ;(分号)
[6] ()(括号)
[7] &(& 符号)
[8] +(加号)
B. 如果要修订 <%00script> 变体,请参阅 MS 文章 821349C. 对于 UTF-7 攻击: [-] 可能的话,建议您施行特定字符集编码(使用 'Content-Type' 头或 <meta> 标记)。HTTP 响应分割:清理用户输入(至少是稍后嵌入在 HTTP 响应中的输入)。请确保输入未包含恶意的字符,例如:
[1] CR(回车符,ASCII 0x0d)
[2] LF(换行,ASCII 0x0a)远程命令执行:清理输入以排除对执行操作系统命令有意义的符号,例如:
[1] |(竖线符号)
[2] & (& 符号)
[3];(分号)
执行 shell 命令:A. 绝不将未检查的用户输入传递给 eval()、open()、sysopen()、system() 之类的 Perl 命令。B. 确保输入未包含恶意的字符,例如:
[1] $(美元符号)
[2] %(百分比符号)
[3] @(at 符号)
XPath 注入:清理输入以排除上下文更改符号,例如:
[1] '(单引号)
[2] "(引号) 等
LDAP 注入:A. 使用正面验证。字母数字过滤(A..Z,a..z,0..9)适合大部分 LDAP 查询。B. 应该过滤出或进行转义的特殊 LDAP 字符:
[1] 在字符串开头的空格或“#”字符
[2] 在字符串结尾的空格字符
[3] ,(逗号)
[4] +(加号)
[5] "(引号)
[6] \(反斜杠)
[7] <>(尖括号)
[8] ;(分号)
[9] ()(括号)
MX 注入:应该过滤出特殊 MX 字符:
[1] CR(回车符,ASCII 0x0d)
[2] LF(换行,ASCII 0x0a)记录伪造:
应该过滤出特殊记录字符:
[1] CR(回车符,ASCII 0x0d)
[2] LF(换行,ASCII 0x0a)
[3] BS(退格,ASCII 0x08)
ORM 注入:A. 确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。C. 使用参数化查询 APID. 清理输入以排除上下文更改符号,例如: (*):
[1] '(单引号)
[2] "(引号)
[3] \'(反斜线转义单引号)
[4] \"(反斜杠转义引号)
[5] )(结束括号)
[6] ;(分号)

(*) 这适用于 SQL。高级查询语言可能需要不同的清理机制。

相关内容: 最新内容:
常用sql注入语句[2015-01-20]
SQL注入式攻击[2015-01-20]
SQL注入漏洞[2015-01-20]
SQL 注入攻击[2015-01-20]
采用二进制代码的SQL注入攻击[2015-01-20]
SQL Server应用程序中的高级SQL注入[2015-01-20]
常用sql注入语句[2015-01-20]
SQL注入式攻击[2015-01-20]
SQL注入漏洞[2015-01-20]
WooYun知识库[2015-01-20]
SQL 注入攻击[2015-01-20]
采用二进制代码的SQL注入攻击[2015-01-20]