사용자가 가질 권한을 결정하기 위해 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
내가 접근 할 수 있다면
암호가 'OR 1 = 1'인 경우 mysql_real_escape_string이 어떻게 도움이 될까요? –
문자열에 영향을 미치지 않고 '문자 (\')를 이스케이프 처리하므로 문자로 보입니다. 그래서 비밀 번호는 \ 'OR 1 = 1 \'쿼리에 영향을 미치지 않습니다 – Ossie7
그 stackoverflow에 대한 형식이되었다 - 왜 나타나는지 모르겠다 –