我有一个任务要向Web应用程序中添加SQL注入漏洞,我希望有人可以在不涉及重写整个程序的正确方向上给我一些帮助。
下面是完成大部分工作的代码:
package todolist;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.query.Query;
public class DAOImp implements ItemListDAO {
@Override
public void addItem(String itemStr) {
ListItem item = new ListItem(itemStr);
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = null;
Integer itemID = null;
try {
tx = session.beginTransaction();
itemID = ((Integer) session.save(item));
tx.commit();
} catch (HibernateException e) {
if (tx != null)
tx.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
@Override
public void delItem(int itemNbr) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = null;
ListItem item2 = session.get(ListItem.class, itemNbr);
try {
tx = session.beginTransaction();
session.delete(item2);
tx.commit();
} catch (HibernateException e) {
if (tx != null)
tx.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
@Override
public List<ListItem> getList() {
List<ListItem> list = new ArrayList<>();
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Query<ListItem> queryList = session.createQuery("FROM ListItem");
list = queryList.list();
tx.commit();
} catch (HibernateException e) {
if (tx != null)
tx.rollback();
e.printStackTrace();
} finally {
session.close();
}
return list;
}
}
当我创建一个对象然后转移到数据库时,我不确定如何精确地创建注入缺陷,或者在添加或删除部分中这样做是否更容易。感谢您的帮助,以及您可能需要的任何其他信息。