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 = ' test ' pass= ' ' or '1' = '1' ";
所以我們把程式碼改成
$sql="SELECT * FROM test WHERE id =
' ".mysql_real_escape_string($id)." '
pass= ' ".mysql_real_escape_string($passwd)." ' ";
這樣就不怕有心人了
沒有留言:
張貼留言