我知道spring和hibernate都是从SQL注入中获得的。
提前感谢..
答案 0 :(得分:3)
如果正确使用API,Hibernate会提供SQL注入的安全性。
来自:https://www.owasp.org/index.php/Hibernate#A_note_about_SQL_injection
关于SQL注入的说明
由于这是热门话题,我现在将讨论,但稍后会详细讨论。
- Hibernate不会授予对SQL注入的免疫力,可以随意滥用API。
- HQL(Hibernates SQL的子集)没有什么特别之处可以让它更容易受到影响。
- createQuery(String query)和createSQLQuery(String query)等函数创建一个Query对象,该对象将在调用commit()时执行。如果查询字符串被污染,则表示您已进行SQL注入。稍后将介绍这些功能的详细信息。
始终使用PreparedStatement来阻止SQL注入,它是JDBC API的一部分,而Hibernate本身使用此API see。
例如:
String query1 = "select * from MyBean where id = "+ id;//Not secure
String query2 = "select * from MyBean where id = :id";//Secure
关于此主题的有用文章:http://software-security.sans.org/developer-how-to/fix-sql-injection-in-java-hibernate