我只是想知道这行代码是否可以安全地用来避免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);
我需要striplashes吗?
答案 0 :(得分:8)
使用预准备语句更安全,因此(可能是恶意的)值与查询字符串分开,而不是依赖于转义。阅读PHP Data Objects。
关于stripslashes()
,只有在您启用了PHP的magic_quotes_gpc
功能时才需要这样做,因为它已被弃用shouldn't。但是,如果您想要健壮,请if (get_magic_quotes_gpc()) $myusername = stripslashes($myusername);
执行此操作,以便当且仅当添加了一个斜杠时才会删除一个斜杠。