2011-05-06 57 views
2

我只是想知道這行代碼是否安全以避免SQL注入?在PHP中避免SQL注入的最安全方法?

// username and password sent from form 
$myusername=$_POST['loginUserName']; 
$mypassword=$_POST['loginPassword']; 

$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 

我是否需要拆封?

回答

8

使用預準備語句更安全,以便(可能是惡意)值與查詢字符串分開,而不是依賴轉義。閱讀關於PHP Data Objects

關於stripslashes(),只有當您啓用了PHP的magic_quotes_gpc功能時,才應該這樣做,因爲已被棄用。但是,如果您想要保持健壯,請執行if (get_magic_quotes_gpc()) $myusername = stripslashes($myusername);,以便在添加一個斜槓時刪除斜槓層。