请问Hibernate防范SQL injection attack?如果我使用的是hibernate模式,那么我完全可以免受SQL注入攻击吗?我听说使用Hibernate执行dynamic SQL statement带有用户输入的内置内容可以使攻击者修改语句的含义或执行任意命令SQL commands。
Hibernate
SQL injection attack
dynamic SQL statement
SQL commands
Hibernate可以防止SQL注入攻击吗?
不,它不能保护写错的代码 ,因此编写查询时需要小心。始终使用准备好的语句样式,例如考虑以下 HQL 查询,
String query1 = "select * from MyBean where id = "+ id; String query2 = "select * from MyBean where id = :id";
query1 仍然容易受到 SQL Injection的攻击 ,而 query2 则不然。
因此,简而言之, hibernate为您提供了许多应用于防止 SQL注入攻击的方法。