鍍金池/ 問答/PHP  數(shù)據(jù)庫/ 只允許數(shù)字/字母/下劃線/等于大于小于號/中劃線/冒號,可以防注入嗎?

只允許數(shù)字/字母/下劃線/等于大于小于號/中劃線/冒號,可以防注入嗎?

現(xiàn)在在著手統(tǒng)一公司的后臺,打算主站去各個子站取數(shù)據(jù)
每次有新需求,都發(fā)子站的代碼太麻煩,(很多子站的運維權(quán)限不在我們手上)
目前打算這樣。
子站備著一句

sprintf("select * from %s where %s %s '%s'", $table, $cond, $is, $value);

主站傳的參數(shù),先用正則過一遍,只允許數(shù)字/字母/下劃線/等于大于小于號/中劃線/冒號,
如果有其它符號(主要是防空格??)
就不執(zhí)行。

這樣安全嗎?

主要目的是,保證安全的情況下,盡可能把工作量和回旋余地都集中到主站。

基本的api對稱加密那些肯定是有。主要問題還是防注入這塊,這樣能防住嗎?

回答
編輯回答
獨白

PHP 用 PDO,一切交給PDO 就解決了

2017年11月7日 14:30
編輯回答
慢半拍

PHP不是有PDO嗎?為什么不用了?

2017年10月27日 17:36
編輯回答
空白格

不安全。
手拼 SQL 就不安全,記住這個就可以了。

2018年6月9日 14:55
編輯回答
陌南塵

有prepare不用,想著自己實現(xiàn)防注入?

2017年12月5日 21:01
編輯回答
扯不斷

防注入, 使用prepare, 別的方式, 想都不要想.

2017年12月18日 02:27