使criteria.add(Restrictions.sqlRestriction())sql注入证明

Sup*_*999 3 sql hibernate

民间,

我在休眠3中建立一个标准,如下所示。这是SQL注入证明?

criteria
    .add(
         Restrictions.sqlRestriction(
            "to_char(createDate,'mm/dd/yyyy') like '%" + dateString + "%'"),
         StandardBasicTypes.STRING);
Run Code Online (Sandbox Code Playgroud)

我在想的另一个选项是将dateString转换为日期并转换为此

criteria.add(Restrictions.eq(createDate, dateObjCreatedFromString)
Run Code Online (Sandbox Code Playgroud)

Ale*_*øld 5

不,这不是SQL注入证明,因为您正在使用常规的String操作来建立限制。正确执行此操作的方法(假设您必须使用sqlRestriction来解决此问题):

criteria
    .add(
         Restrictions.sqlRestriction(
            "to_char(createDate,'mm/dd/yyyy') like ?", 
            "%" + dateString + "%", StandardBasicTypes.STRING));
Run Code Online (Sandbox Code Playgroud)