Mapper
Mapper copied to clipboard
如何优雅的在condition方法中使用非固定参数并避免被sql注入?
如果使用数据库函数时应该怎么使用呢?是在condition方法中使用吗?如果是的话,并且自己没有对数据进行sql注入处理时,会存在sql盲注类型问题,例如find_in_set('abc', 字段名),有大神遇到过这种问题吗? 我目前是在使用时对数据进行sql注入处理,但是此操作很不方便,想请问有更好的建议吗? ps. condition方法使用的是${}变量 此变量存在sql注入可能,#{}变量不会存在sql注入可能性,数据库会对其进行预处理以防止sql注入。
有很多方法是为了开发人员写SQL方便提供的。。不是为了方便前端直接使用的,如果是不可控的参数,必须做校验。
我在想有没有这样一种可能呢? 把condition方法参数改变为特定对象(一个字符串字段,一个boolean状态字段:允许$,不允许$时就是允许#),然后这个地方可以传入多个这种对象,在处理为sql时,就可以根据状态区分是否使用$注入变量值还是使用#,这样避免这个问题呢?
自己做校验太麻烦,没有官方自带校验香啊 哈哈哈