第四章 SQL 注入

2019-12-24  本文已影响0人  农民工进城

要点

一、SQL注入

SQL注入:黑客会通过构造一些恶意的输入参数,在应用拼接 SQL 语句的时候,去篡改正常的 SQL 语意,从而执行黑客所控制的 SQL 查询功能

二、SQL 注入防护

SQL 注入是在解析的过程中生效的,用户的输入会影响 SQL 解析的结果。因此,我们可以通过使用 PreparedStatement,将 SQL 语句的解析和实际执行过程分开,只在执行的过程中代入用户的操作。这样一来,无论黑客提交的参数怎么变化,数据库都不会去执行额外的逻辑,也就避免了 SQL 注入的发生。


  String sql = "SELECT * FROM Users WHERE UserId = ?";
  PreparedStatement statement = connection.prepareStatement(sql);
  statement.setInt(1, userId); 
  ResultSet results = statement.executeQuery();

因此,对所有输入进行验证或者过滤操作,能够很大程度上避免 SQL 注入的出现

上一篇 下一篇

猜你喜欢

热点阅读