[轉貼]【PHP】防止SQL注入攻擊 (mysql_real_escape_string)


http://www.wretch.cc/blog/sos80065/34790453
 
mysql_real_escape_string()會自動在特殊字元前面加上\
例如: $a =what's 
就會變成
what\'s
這樣一來就可以防止SQL攻擊。

例如有段程式碼如下:
$sql="SELECT * FROM test WHERE id = ' ".$id." 'pass= ' ".$passwd." ' ";

如果有人在pass裡面輸入 ' or '1'='1
那這樣不就會變 
$sql="SELECT * FROM test WHERE id = ' test 'pass= ' ' or '1'='1 ' ";

所以我們把程式碼改成
$sql="SELECT * FROM test WHERE id = ' ".mysql_real_escape_string($id)." 'pass= ' ".mysql_real_escape_string($passwd)." ' ";

這樣就不怕有心人了