February 5, 2012

【PHP】防止SQL注入攻擊 (mysql_real_escape_string)

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)." ' ";

這樣就不怕有心人了

0推薦此文章
Today's Visitors: 0 Total Visitors: 122
Personal Category: 網頁Java Script Topic: feeling / personal / murmur
Previous in This Category: 【PHP】限制字數 (strlen搭配substr用法)  
[Trackback URL]

No one can comment

誰來收藏
Loading ...
unlog_NVPO 0