在PHP中避免SQL注入的最安全方法?
问题描述:
我只是想知道这行代码是否安全以避免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);
我是否需要拆封?
答
使用预准备语句更安全,以便(可能是恶意)值与查询字符串分开,而不是依赖转义。阅读关于PHP Data Objects。
关于stripslashes()
,只有当您启用了PHP的magic_quotes_gpc
功能时,才应该这样做,因为已被弃用。但是,如果您想要保持健壮,请执行if (get_magic_quotes_gpc()) $myusername = stripslashes($myusername);
,以便在添加一个斜杠时删除斜杠层。