大家都知道,PDO準備語句可以幫助我們防止SQL注入攻擊。這個怎麼樣:普通mysql準備語句防止注入攻擊?
function userQuery($username){
$mysqli->multi_query("
PREPARE stmt1 FROM 'SELECT * FROM user WHERE username=?';
SET @a = '$username';
EXECUTE stmt1 USING @a
");
}
userQuery('Kelvin');
這是像mysqli或PDO準備聲明一樣安全嗎?
我問這個問題,因爲我發現這些句子上wiki:
預處理語句是對SQL注入彈性,因爲參數值,它們使用不同的協議進行傳送,不需要正確轉義。如果原始語句模板不是從外部輸入派生的,則SQL注入不會發生。
他們提到約parameters are transmitted later with different protocol
。我並不真正瞭解 這個。
parameters are transmitted later with different protocol
如何防止注射攻擊?
請考慮**注射攻擊是如何工作的,然後將相同的邏輯應用於上述場景。 – 2014-08-30 10:34:38
我已更新我的問題。請讓我知道如果我仍然在某個地方錯了。 – user3925697 2014-08-30 10:47:09