|
+ w9 k! S1 F% K% J5 T; f; T# w
SQL注入是一种常见的数据库攻击方式之一,攻击者利用Web应用程序的缺陷,例如未对输入数据进行合法性检验,通过执行恶意SQL语句非法获取数据库服务器的访问权限,实现对数据库中数据的非法操作,具有影响广泛、隐蔽性强、危害大、操作方便等特点。 b, K }4 s9 b' D' m0 H
根据输入参数类型不同,SQL注入分为字符型注入和数字型注入两种注入方法SQL注入的安全风险非常高,仅使用防火墙不能对此类攻击进行防范,目前的主要防范措施包括如下几个方面1.用户按照权限分层管理和身份多层验证。
4 l# y) T3 r8 X: F 只为用户分配完成任务所需的最小权限,严格控制不同用户的权限用户访问系统时,对用户信息进行验证,然后用户输入的数据也只有验证通过后才能访问数据库2.变量通过参数传值构造SQL语句时,不能把变量直接用于SQL语句中,变量必须通过参数进行传值。 / V) ~1 r. a1 f/ l
3.用户输入内容检查过滤检查过滤用户输入内容,确保数据输入的安全性对于具有安全参数的数据库例如SQL Server,编程人员在编写应用程序时应尽量使用安全参数进行数据类型和长度检验4.通过工具扫描SQL注入漏洞。
7 |1 O$ h0 p1 {7 r/ f0 f8 ^ 通过专业的SQL注入漏洞扫描工具,及时的扫描到可能存在的SQL注入漏洞,根据实际采取相应防范措施处理漏洞5.使用加密算法加密数据库信息使用加密算法例如对称加密算法、非对称加密算法、不可加密的哈希算法等加密数据库信息,建议选用安全性高的加密算法。
* Y) ^8 r5 g, r4 z4 }" y; `6 F4 u9 P# H* L
2 t1 u; Q1 x# v* L; T' Q9 g3 p5 q( D0 S1 m) R) Z3 z- K
4 t, ]7 q1 y- S" z4 N! [8 O3 }. R
) i% P$ D, i! {- s g2 b% E |