我已經運行了一些獲取用戶提供的字符串的node.js代碼,調用JSON.stringify(str)
並將值直接注入到SQL語句中。JSON.stringify字符串防止(My)SQL注入嗎?
例如
var x = JSON.stringify(UNSAFE_USER_STRING);
mysql_execute('UPDATE foo SET v = ' + x + ' WHERE id = 1');
顯然這是JSON.stringify的濫用,但是這不是我的代碼,作者希望看到攻擊媒介,他們修補它之前。由於UNSAFE_USER_STRING是一個字符串,而不是一個對象,並沒有逃避明顯"
和\
不是很明顯,如果有一個嚴重的問題
這段代碼安全嗎?如果不是,有人可以證明什麼是不安全的輸入?
謝謝!用這樣的評語
[防止Node.js中的SQL注入](http://stackoverflow.com/questions/15778572/preventing-sql-injection-in-node-js)。使用預準備的語句 – Devon
以上評論請至少在評論前閱讀問題標題。如果您閱讀完整的問題,可以獲得獎勵。 – danneu
如果你不發送UTF8編碼會怎麼樣? http://stackoverflow.com/questions/12456762/accented-characters-breaks-json-encode-in-php(雖然,PHP的問題。*應該不同於node.js?*) –