Стандартный правильный ответ ajax для входа - PullRequest
0 голосов
/ 26 апреля 2018

Я разрабатываю свой собственный PHP-фреймворк (который, кстати, работает довольно хорошо), и сейчас я разрабатываю систему входа в систему.Это не проблема, у меня это уже работает отлично, у меня есть база данных, регистрация, форма входа, выход из системы и т. Д.

Но сейчас, когда вы заполняете форму входа и нажимаете кнопку «Войти»msgstr ", ajax отправлен, сервер (php) проверяет пользователя (имя пользователя и пароль) и отправляет ответ обратно.Теперь ответом является просто число:

0 - Логин правильный.

1 - Имя пользователя неверное.

2 - Имя пользователя правильное, но пароль неверный.

Это прекрасно работает для своей цели, но я уверен, что это не правильный / профессиональный способ, я просто изобрел это.Поэтому я хотел бы знать, какой ответ будет правильным при проверке входа в систему.

Например, многие веб-сайты используют ответ json с «кодом ошибки» и сообщением, но я на самом деле не знаюкак это устроено.Кроме того, это действительно повлияет?Или это не имеет значения?Какая реальная польза от этого?Безопасность?Смешивать с другими библиотеками и сервисами?Или моя текущая система уже в порядке?

/ ****** ОБНОВЛЕНИЕ ****** /

Вы, ребята, говорите мне, что я не должен говорить, что имя пользователя / адрес электронной почтыверно, но пароль нет.Хорошо, вы правы, я согласен, и я исправлю это, и спасибо за ваше участие и помощь.

Тем не менее, это не вопрос, и ответы должны помочь кому-то еще с моим же сомнением: ответ.

Я нашел это, очень полезное: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

И эта функция (PHP> 5.4): http_response_code ($ code_number);

Технически это будет:

function my_ajax_function( )
{
    //try login

    if (login_correct)
        http_response_code(200);  // 200 = OK
    else
        http_response_code(401);   // 401 = Unauthorized

    // ajax response is independent of the http response
    die("whatever I want");
}

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Я бы не ответил с именем пользователя правильно, но пароль - нет.Это позволяет хакеру узнать, что их на полпути туда.Ответ должен быть верным или ложным.Они прошли аутентификацию или не прошли.

Способ обработки аутентификации в моей системе;если учетные данные ложные, запретите доступ, если учетные данные верны, создайте ключ сеанса, а затем переместите пользователей на следующий шаг.Затем каждый запрос страницы проверяет сеансовый ключ на предмет его действительности.

Обновление до вашего обновления ;это код ответа HTTP, который говорит, что страница не найдена, то есть на сервере нет файла.если вы хотите отправить http ответ 401 будет его.(401 = Несанкционированный)

0 голосов
/ 26 апреля 2018

Ответ Ajax будет 200, если все в порядке, вы можете вернуться с.Ваш сервер получает сообщение, и в случае успеха ajax отвечает, что вы читаете ответ сервера, а затем, если что-то не так, вы показываете детали с.Ошибки, например, вы можете вернуть 1 для входа в систему в порядке, - 1 для почты.Не существует, и - 2 для пароля не в порядке, я редактирую, вы можете создать токен при загрузке формы, который будет проверен при вызове ajax на сервере позже, таким образом вы добавите точку безопасности, вы тоже можетена сервере напрямую все в порядке перенаправить на главную страницу qbere вы пользователь вошел в систему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...