Mybatis的orderby引起的sql注入

【Mybatis的orderby引起的sql注入】sql中两种传参数的方式:
#{param} 这种是经过预编译的,不会有sql注入
${param} 这种仅仅取变量的值,可以有sql注入
但是在orderby中之能用${param},用#会导致排序不生效。
例如,传入值为name时
用 SELECT * FROM STUDENT ORDER BY #{orderby}会变成:
SELECT * FROM STUDENT ORDER BY "name"
用 SELECT * FROM STUDENT ORDER BY ${orderby}会变成:
SELECT * FROM STUDENT ORDER BY name

常见的解决orderBy的sql注入的方式:
手动过滤,添加白名单
其它用到$符号的场景:
当数据库分表的时候,表格很多,不会把表名写死,改用$传入

    推荐阅读