2013-02-02 108 views
-2

可能重複:
Why shouldn’t I use mysql_* functions in PHP?什麼是... mysql_real_escape_string?危險嗎?

惠,我可以使用一個代碼在PHP這樣的:

$s_username = addslashes(strip_tags($_POST['username'])); 
$s_password = addslashes(strip_tags($_POST['password'])); 
此之前

是使用

$email = mysql_real_escape_string(strip_tags($_POST['email'])); 
$username = mysql_real_escape_string(strip_tags($_POST['username'])); 

...因爲很多人說mysql_real_escape_string使用起來很危險?

+1

誰說的...?也許它們意味着你不應該再使用mysql_ *堆棧,而是使用mysqli_ *或PDO來代替。該函數本身不*危險*,它只是被棄用。 – Quasdunk

+0

危險?究竟以什麼方式? – TheDeadLike

+0

使用pdo或mysqli與預處理語句.. – bitWorking

回答

1

它的折舊意味着它沒有被維護,所以如果發現安全漏洞,PHP開發人員不會去修復它。這並不危險,但它只是逃脫了可能用於sql注入的所有不好的字符。

改用mysqli_ *函數或PDO。那些實際上正在維護,並且更安全。

+0

thanx老兄真的很感激它.. :) –

+0

他們實際上很危險--http://www.iodigitalsec.com/mysql_real_escape_string-wont-magically-solve-your-sql-injection-problems/ – Stephen