在ibatis中使用$value$引入变量会引入SQLInjection漏洞

(1)sql语法中的_关键字_.如果sql语句中出现存在用户输入的关键字.
比如以下sql: select TABLE_NAME,TABLESPACE_NAME from user_tables order by TABLE_NAME $ordertype$
其中ordertype为用户输入的ASC,DESC.对这种关键字请使用 $ordertype:SQLKEYWORD$替换 $ordertype$ .
(2)sql语句中的_元数据_.如果sql语句中存在用户输入的元数据.表名,字段名等等.

比如以下sql: select TABLE_NAME,TABLESPACE_NAME from user_tables order by $orderByColumn$ .

其中orderByColumn是数据库中的字段. 对这种元数据的请使用:$orderByColumn:METADATA$替换$orderByColumn$.

你可能感兴趣的:(Java)