2
我有一個使用Ebean Finder對象的查詢。這是一個工作版本:用set參數ebean查詢
public static Finder<Long, Device> find = new Finder<>(Long.class, Device.class);
。
public static Page<Device> find(int page, String sorting, String order) {
return
find.where()
.orderBy(sorting + " " + order)
.findPagingList(10)
.setFetchAhead(false)
.getPage(page);
}
但現在我想通過使用setParameter函數使SQL注入安全,我試過這個,但沒有工作。很高興知道我錯了什麼。
public static Page<Device> find(int page, String sorting, String order) {
return
find.where()
.orderBy(":sorting :order")
.setParameter("sorting", sorting)
.setParameter("order", order)
.findPagingList(10)
.setFetchAhead(false)
.getPage(page);
}
UPDATE:
提到here,
「問題是你不能使用命名參數設置爲了在HQL(或SQL)查詢」
如果爲true,這會使我的代碼容易受到SQL注入的攻擊!那麼你的建議是什麼?
感謝您的源代碼,它表明,對於OrderBy屬性,不可能混淆參數! – behzad