【Java代码审计】SQL注入篇
SQL注入漏洞概述
SQL 注入(SQL Injection)是因为程序未能正确对用户的输入进行检查,将用户的输入以拼接的方式带入 SQL 语句中,导致了 SQL 注入的产生。黑客通过 SQL 注入可直接窃取数据库信息,造成信息泄露
JDBC Statement执行SQL语句导致SQL注入
java.sql.Statement是Java JDBC下执行SQL语句的一种原生方式,执行语句时需要通过拼接来执行。若拼接的语句没有经过过滤,将出现SQL注入漏洞
下面的例子中,我们直接将用户输入的用户名和密码拼接到SQL查询中,而没有使用参数化查询或预编译语句。这样的代码容易受到SQL注入攻击,因为恶意用户可以在输入中插入恶意SQL代码,从而修改SQL查询的行为
@RestController
public class InsecureController {
@Autowired
private DataSource dataS