我正在写一个代码,将检查2个不同的表来确定用户将拥有的权限。代码如下:我正在查看是否有人可以告诉我这是多么安全
$query1 = ("SELECT 1 FROM `customers` WHERE `Email` = '$email' AND `Password` = '$password'");
$query2 = ("SELECT 1 FROM `admins` WHERE `Email` = '$email' AND `Password` = '$password'");
$result1 = mysql_query($query1) or die(mysql_error());
$result2 = mysql_query($query2) or die(mysql_error());
if (mysql_num_rows($result1) == 1) {
// Log user in as a Customer
exit;
} else if (mysql_num_rows($result2) == 1) {
// Log user in as an Admin.
exit;
} else {
// Direct user to registration page.
}
任何人都可以看看这个,并告诉我这样做是否会有任何安全风险?预先感谢您的帮助!
如果我的密码是'OR 1 = 1',mysql_real_escape_string'将如何帮助 –
它会转义字符(\),所以它会被视为字符而不是影响字符串。所以密码将是\'OR 1 = 1 \'这将不会影响查询 – Ossie7
这是格式化的stackoverflow - 不知道它为什么出现 –