2010-12-10 65 views
0

如果您選擇的語言/數據庫具有用於轉義用戶輸入的內置函數(例如mysql_real_escape_string),那麼SQL參數化的參數是什麼?有可能mysql_real_escape_string在某些時候可能使應用程序易受攻擊?SQL參數化與轉義

我使用參數化,因爲我已經被告知/已經閱讀它是更好的方式去,但我不只是盲目追隨。任何見解?謝謝!

回答

1

參數設置的參數是性能

如果你要執行下面的句子幾次:

insert into table (col1, col2) values (?, ?); 

這是更好地使用參數,因爲查詢會只進行評估(分析,計劃,分析和計算)一次,並且會執行很多次。

+0

因此從安全的角度來看,參數化並沒有比內建的轉義函數有什麼優點? – Joseph 2010-12-10 19:28:39

+0

如果您100%確定每次都會完美地轉義值,則應該與使用參數相同。 – 2010-12-10 19:30:02