#{}和${}的区别:
#{}传入参数是字符串,$是直接替换,前者没有sql注入的风险,后者有sql注入的风险
以下是sql注入的示例:
controller
mapper这里用$
调用时拼接sql用于注入
控制台日志显示电话也更新了
最后看表里的数据也更新了
这就会有风险,因为原本是只更新name的,但是通过sql注入的形式
达成其他操作就会形成风险,所以使用$时要注意
#{}和${}的区别:
#{}传入参数是字符串,$是直接替换,前者没有sql注入的风险,后者有sql注入的风险
以下是sql注入的示例:
controller
mapper这里用$
调用时拼接sql用于注入
控制台日志显示电话也更新了
最后看表里的数据也更新了
这就会有风险,因为原本是只更新name的,但是通过sql注入的形式
达成其他操作就会形成风险,所以使用$时要注意