漏洞原理:
未对用户输入的参数过滤,导致参数内容被拼接到SQL语句中,被带的数据库中查询。
分类:
根据参数类型分为:字符型注入、数字型注入、搜索型注入。
根据注入位置分为:GET注入、POST型注入、Cookie注入、Header头注入、User-Agent头注入、Host注入、Referer头注入。
根据返回结果分为:布尔盲注、时间盲注、报错注入。
其他注入:联合注入、宽字节注入、编码注入、二阶注入、堆叠注入、DNSlog注入、偏移注入。
数据库分类:
关系型数据库:Oracle、MySQL、DB2、SQLserver、Access、Sybase;
非关系数据库:MongoDB、Redis、Cassandra、HBase、Neo4j、Oracle NoSQL、Amazon DynamoDB、Couchbase、Memcached、CouchDB。
修复方法:
1.采用预编译语句集(PreparedStatement),
2.使用正则表达式过滤传入的参数,
3.字符串过滤。