前端传参传一个数组过去 [手机号,需要修改的列名,需要修改的列名的值],这个SQL要怎么写?

【问题描述】:前端采用Vue.js,在修改用户信息的时候,有些模块存在共有的组件;
当用户进入某个模块中的时候(图二),点击保存按钮,更新数据库;

clipboard.png

clipboard.png

后端使用的是同一条SQL(update 表名称 set 列名称 = 新值 where mobile = 某用户)
但是这个 [列名称,新值,某用户]都是前端传过去的参数。
个人的这条SQL写法是:UPDATE user SET ?=? WHERE mobile=?
但是问了一个同事,他说这样会存在注入的风险
【问题】:那我要如何写这条SQL?

阅读 2.4k
2 个回答

你说的是后端在写 更新表 时候防注入吗?那就是尽量不要使用拼接mysql语句查询,如果要,也做一下正则判断,这个按你需求来写。
最好是使用ORM框架来操作数据库。

非后端,简单说一下,错了轻打:

手写SQL,应该注意过滤敏感字段,防范SQL注入,以及防范措施

其实我想说的是:干TMD,这不是后端的活?(滑稽)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题