Извините, если мой вопрос прост. Пожалуйста, ознакомьтесь со следующим кодом. Я знаю, что происходит.Как выполнить код в PHP
<?php
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$login = $_POST['login'];}
else {echo "Connection Error";}
if(checking the fields is correct) {
//check it in database and if there is, assign the client session to the $_SESSION['username']
$_SESSION['username'] = $username;
//Login success
}
У нас есть код, указанный выше. Если хакер не использует метод POST
, и если он использует метод GET
, в результате он должен получить сообщение echo "Connection Error";
.
Теперь мой вопрос: если хакер использует метод GET
вместо метода POST
, а также он может правильно использовать имя пользователя и пароль, может ли он успешно выполнить вход в систему?
В идеале должно произойти прерывание после «Ошибка соединения» или это должно быть последнее условие проверки, означает, что все ваши проверки и успех входа должны быть внутри if ($ _ SERVER ["REQUEST_METHOD"] == "POST"). –
Я согласен с @codeSun, но в случае над массивом $ _POST остается пустым, поэтому проверка базы данных наверняка завершится неудачно, поэтому ничто не войдет в систему $ _SESSION. –