鍍金池/ 問答/HTML5  數(shù)據(jù)庫  HTML/ 前端傳參傳一個(gè)數(shù)組過去 [手機(jī)號(hào),需要修改的列名,需要修改的列名的值],這個(gè)SQ

前端傳參傳一個(gè)數(shù)組過去 [手機(jī)號(hào),需要修改的列名,需要修改的列名的值],這個(gè)SQL要怎么寫?

【問題描述】:前端采用Vue.js,在修改用戶信息的時(shí)候,有些模塊存在共有的組件;
當(dāng)用戶進(jìn)入某個(gè)模塊中的時(shí)候(圖二),點(diǎn)擊保存按鈕,更新數(shù)據(jù)庫;

clipboard.png

clipboard.png

后端使用的是同一條SQL(update 表名稱 set 列名稱 = 新值 where mobile = 某用戶)
但是這個(gè) [列名稱,新值,某用戶]都是前端傳過去的參數(shù)。
個(gè)人的這條SQL寫法是:UPDATE user SET ?=? WHERE mobile=?
但是問了一個(gè)同事,他說這樣會(huì)存在注入的風(fēng)險(xiǎn)
【問題】:那我要如何寫這條SQL?

回答
編輯回答
懶洋洋

你說的是后端在寫 更新表 時(shí)候防注入嗎?那就是盡量不要使用拼接mysql語句查詢,如果要,也做一下正則判斷,這個(gè)按你需求來寫。
最好是使用ORM框架來操作數(shù)據(jù)庫。

2018年6月6日 14:50
編輯回答
影魅

非后端,簡(jiǎn)單說一下,錯(cuò)了輕打:

手寫SQL,應(yīng)該注意過濾敏感字段,防范SQL注入,以及防范措施;

其實(shí)我想說的是:干TMD,這不是后端的活?(滑稽)

2017年8月16日 14:27