我正在制作一个登录系统(并且在 php 中确实是新的)。我的 friend 告诉我最好使用 PDO。然而,我不知道如何使用 PDO,而且我对 MySQL 已经有点熟悉了。例如,这是我的代码的一部分:
$un = preg_replace('/[^a-z]/i','',$_POST['username']);
$pw = preg_replace('/[^a-z]/i','',$_POST['password']);
$result = mysql_query("SELECT `username`,`password` FROM `login` where `username` = $un && `password` = $pw") or die (mysql_error());
由于所有非字母数字字符都被删除,上述代码是否会存在任何类型的安全风险?如果是这样,最好的方法是什么? (使用 PDO 或原始 MySQL)
最佳答案
您可以只使用 mysql_real_escape_string
$result = mysql_query("SELECT `username`,`password`
FROM `login`
WHERE `username` = '".mysql_real_escape_string($_POST['username'])."' &&
`password` = '".mysql_real_escape_string($_POST['password'])."'")
关于PHP mysql_query 登录系统安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7494376/