我聽到有人說(關於C#/ SQL Server,但也與PHP/MySql有關):不要手動轉義字符串 - 使用存儲過程代替。爲什麼mysql_real_escape_string()不應該避免任何SQL注入?
好的,我可以接受這個建議,但爲什麼?很多人說(包括對SO)mysql_real_escape_string()
是相當不夠的,mysql_real_escape_string()
是好的,mysql_real_escape_string()
是第一種保護方式。
爲什麼?有沒有mysql_real_escape_string()
可能會失敗的情況?至少有一個...我不需要太多:)
這是最大的弱點是_you_可以忘記使用它! –
您會發現MySQL中存儲過程的使用比在SQL Server中使用的少,但使用預準備語句通常是PHP/MySQL API鼓勵使用的。 –
我從來沒有使用過mysql_real_escape_string()的任何問題。 我認爲人們說使用商店程序,而不是因爲有機會忘記使用mysql_real_escape_String()。 – Khronos