Безопасно ли использовать ajax для входа в систему? - PullRequest
12 голосов
/ 04 августа 2011

Я собираюсь включить систему входа в систему на мой веб-сайт, но я не думаю, что для безопасности будет хорошей идеей использовать ajax для отправки и получения подтверждения от внешнего php-скрипта с именем login.php и выходатак же с другим logout.php любая рекомендация

Ответы [ 6 ]

20 голосов
/ 04 августа 2011

Безопасность

AJAX так же безопасен, как простая старая форма + страница обновления.В конце концов, это всегда HTTP-запрос.Почему вы так думаете?

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

Обязательно используйте метод POST для отправкиAJAX-запрос, так как GET запросов, и их параметров (например, например, текстовый пароль ) может заканчиваться в журналах вашего веб-сервера, если вы используете HTTPS.

Удобство использования

Как указывало Grégoire :

Также с точки зрения удобства использования автозаполнение не будет работать для форм AJAX в Chrome и дляAJAX-загруженные формы в Firefox.Браузеры даже не предлагают запомнить ваш пароль

11 голосов
/ 04 августа 2011

Я не могу думать о каких-либо последствиях безопасности при использовании Ajax для обработки входа и выхода из системы.Неважно, что вы отправляете туда и обратно (если вы не отправляете простые текстовые пароли с сервера на клиент) между уровнем ajax и sever, потому что сеанс будет содержать состояние авторизации.

Однако вам все равно придется обновить страницу или перенаправить ее, чтобы показать соответствующее содержимое только авторизованному пользователю.Поэтому я не думаю, что Ajax будет эффективен в этой конкретной ситуации.

2 голосов
/ 04 мая 2013

Вход через ajax POST должен быть безопасным, если у вас есть способ предотвратить атаки XSRF. Это можно сделать, установив заголовок X-CSRFToken в вашем запросе ajax. На стороне сервера у вас должно быть какое-то промежуточное ПО для проверки и проверки вашего CSRF-токена из заголовка.

Вы можете установить токен csrf в куки, а затем запросить его и установить в заголовке:

var csrftoken = $ .cookie ('csrftoken');

xhr.setRequestHeader ("X-CSRFToken", csrftoken);

(я использовал здесь библиотеку jquery cookie для иллюстрации)

1 голос
/ 04 августа 2011

GET или POST по сравнению с вызовом ajax имеют одинаковый набор угроз безопасности. Тот или другой не является неявно рискованным.

0 голосов
/ 04 августа 2011

Вы можете использовать AJAX с контейнером SSL (HTTPS). Но страница отправителя также должна быть зашифрована. из-за междоменной политики.

0 голосов
/ 04 августа 2011

Хорошо, сообщения ajax безопасны

Все зависит от того, как вы кодируете, вы должны кодировать, учитывая все возможные атаки

используйте ajax только для отправки данных и выполняйте всеавторизуйтесь в php и верните успешное сообщение

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