Я собираюсь включить систему регистрации на свой веб-сайт, но я не думаю, что это хорошая идея для безопасности использовать ajax для отправки и получения подтверждения от внешнего PHP скрипт, называемого login.php и выйти из системы таким же образом с другим logout.php любая рекомендация
Можно ли использовать ajax для входа в систему?
Ответ 1
Я не могу придумать никаких последствий для безопасности при использовании Ajax для обработки входа и выхода из системы. Неважно, что вы отправляете туда и обратно (до тех пор, пока вы не отправляете текстовые пароли от сервера к клиенту) между боковым уровнем ajax и sever, потому что сеанс будет тем, который будет удерживать состояние авторизации.
Однако вам все равно придется обновлять страницу или перенаправлять, чтобы показать соответствующий контент только авторизованному пользователю. Таким образом, я не думаю, что Ajax будет эффективен в этой конкретной ситуации.
Ответ 2
Безопасность
AJAX безопасен, как обычная старая + обновленная страница. В конце это всегда HTTP-запрос. Почему вы так думаете?
Однако, с точки юзабилити, убедитесь, что люди, которые отключили javascript, могут войти в ваше приложение.
Обязательно используйте метод POST
для отправки вашего запроса AJAX в виде GET
запросов, и их параметров (например, пароль с открытым текстом > ) может закончиться в ваших журналах веб-сервера, unles вы используете HTTPS.
Юзабилити
Как Grégoire указал на это:
Также из точки юзабилити автозаполнение не будет работать для форм AJAX на хроме и для загружаемых AJAX форм в firefox. Браузеры даже не захотят запомнить ваш пароль
Ответ 3
Вход через ajax POST должен быть безопасным, если у вас есть способ предотвратить атаки XSRF. Это можно сделать, установив заголовок X-CSRFToken в ваш запрос ajax. На стороне сервера у вас должно быть какое-то промежуточное программное обеспечение для проверки и проверки вашего токена CSRF из заголовка.
Вы можете установить токен csrf в cookie, а затем запросить его и установить в заголовке:
var csrftoken = $.cookie('csrftoken');
xhr.setRequestHeader( "X-CSRFToken", csrftoken);
(я использовал библиотеку jquery cookie здесь, чтобы illusrtate)
Ответ 4
GET или POST по сравнению с ajax-вызовом имеют одинаковый набор рисков безопасности. Тот или иной не является неявно более рискованным.
Ответ 5
Хорошие сообщения ajax безопасны
Все зависит от вашей кодировки, которую вы должны кодировать, имея в виду все возможные атаки, которые могут произойти.
использовать ajax только для отправки данных и выполнить всю аутентификацию в php и вернуть успешное сообщение
Ответ 6
Вы можете использовать AJAX с SSL-контейнером (HTTPS). Но страница отправителя также должна быть зашифрована. из-за политики перекрестных доменов.