sql注入的原因
sql语句和用户输入的内容进行拼接,发送给数据库编译的时候,数据库将用户输入的内容当成sql语句编译了。从而从根本上改变了我们开发者所期望sql语句原有的含义。导致程序受到sql攻击。
sql注入的代码
这案例用户名密码均错误也可以登陆,就是发生了sql注入
public static void main(String[] args) throws Exception {
//假设这里的用户名和密码是前端页面传递过来的。
String username = "admin' -- ";
String password = "1234";
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/day05", "root", "123");
//创建statement对象
Statement statement = con.createStatement();
//向数据库发送sql语句,查看该用户是否存在。这条sql语句查询的该用户名和密码的用户有多少个。
String sql = "select count(*) from user where name = '" + username + "' and password = '" + password + "'";
ResultSet rs = stat