我正在寫一個代碼,將檢查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 - 不知道它爲什麼出現 –