提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
Secure Code Warrlor是一个代码审计的练习平台。
提示:以下是本篇文章正文内容,下面案例可供参考
一、SQL注入练习(1)
1.漏洞点为:
2.解决方案:
3.总结
1).Servlet中EntityManager.createQuery和EntityManager.createNamedQuery方法用于通过使用 Java 持久性查询语言查询来查询数据存储。
2).createQuery方法用于创建动态查询,这些查询是直接在应用程序的业务逻辑中定义的:
3).可以使用参数绑定的方式防止SQL注入,比如setParameter()方法。
4).参数绑定分为两种:名字参数绑定和位置参数绑定。
5).绑定变量是一个命名占位符(前面有冒号),它嵌入到查询字符串中以代替文本。在运行时使用setParameter()方法替换实际值。
下面例子为名字参数绑定:
String hql = "from Student student where student.rollNumber= :rollNumber";
Query query = session.createQuery(hql);
query.setParameter("rollNumber", "3");
List result = query.list();
二、SQL注入练习(2)
1.漏洞点为:
2.解决方案:
3.总结
1).servlet中可以使用StringBuilder–拼接Sql语句防Sql注入,StringBuilder是一个扩展类,这个扩展方法写成公有静态的,然后每次new StringBuilder 拼接Sql语句的时候就可以调用。