【问题描述】:前端采用Vue.js,在修改用户信息的时候,有些模块存在共有的组件;
当用户进入某个模块中的时候(图二),点击保存按钮,更新数据库;
后端使用的是同一条SQL(update 表名称 set 列名称 = 新值 where mobile = 某用户)
但是这个 [列名称,新值,某用户]都是前端传过去的参数。
个人的这条SQL写法是:UPDATE user SET ?=? WHERE mobile=?
但是问了一个同事,他说这样会存在注入的风险
【问题】:那我要如何写这条SQL?
【问题描述】:前端采用Vue.js,在修改用户信息的时候,有些模块存在共有的组件;
当用户进入某个模块中的时候(图二),点击保存按钮,更新数据库;
后端使用的是同一条SQL(update 表名称 set 列名称 = 新值 where mobile = 某用户)
但是这个 [列名称,新值,某用户]都是前端传过去的参数。
个人的这条SQL写法是:UPDATE user SET ?=? WHERE mobile=?
但是问了一个同事,他说这样会存在注入的风险
【问题】:那我要如何写这条SQL?
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
5 回答3.3k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
3 回答3.7k 阅读✓ 已解决
你说的是后端在写 更新表 时候防注入吗?那就是尽量不要使用拼接mysql语句查询,如果要,也做一下正则判断,这个按你需求来写。
最好是使用ORM框架来操作数据库。