Я новичок в MYSQL, и у меня есть школьное задание, которое гласит: ![The SQL Injection Task](https://i.stack.imgur.com/Jk1cm.png)
Это код PhP, который показывает, как пользователи проходят проверку подлинности:
$input_uname = $_GET[’username’];
$input_pwd = $_GET[’Password’];
$hashed_pwd = sha1($input_pwd);
...
$sql = "SELECT id, name, eid, salary, birth, ssn, address, email,
nickname, Password
FROM credential
WHERE name= ’$input_uname’ and Password=’$hashed_pwd’";
$result = $conn -> query($sql);
// The following is Pseudo Code
if(id != NULL) {
if(name==’admin’) {
return All employees information;
} else if (name !=NULL){
return employee information;
}
} else {
Authentication Fails;
}
Я пробовал так много разных вещей, как это:
SELECT * FROM credential WHERE name= 'admin';
SELECT * FROM credential WHERE name= 'admin' and Password= 'xyz';
, и я поместил это утверждение в поле имени пользователя и xyz
в поле пароля,Я не уверен, правильно ли я к этому подхожу.Оператор SQL должен в поле имени пользователя, правильно?Поле пароля оставлено пустым?Мой профессор не освещал это в классе.Может кто-нибудь уточнить, пожалуйста, как это делается?Я видел примеры в Интернете, и все они выглядят примерно так же, как и выше.Но я получаю одну и ту же ошибку каждый раз:
`There was an error running the query [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'admin' and password= "xyz"; and Password= da39a3ee5e6b40d3255bfe95601890afd80 at line 3]\n`
Спасибо всем заранее!