Почему AJAX-аутентификация через HTTP считается небезопасной? - PullRequest
5 голосов
/ 15 ноября 2010

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

Также, пожалуйста, убедитесь, что модальное диалоговое окно учтено, потому что это важная информация.Под диалоговым окном могут отображаться некоторые данные, которые могут быть доступны, если нарушена модальность.

Вопрос включает в себя следующее:

  1. Как можно нарушить безопасность приложения с помощью вызова ajax?
  2. Является ли Ajax HTTP менее безопасным, чем обычная форма HTTP?

Ответы [ 6 ]

10 голосов
/ 15 ноября 2010

Кто бы ни сказал вам - он неправ.Ajax через сообщение не является менее безопасным , чем сообщение с обычными формами.Только потому, что это то же самое .

Обновление 1 в соответствии с последним редактированием:

  1. Вы не можете
  2. Нет

Аргумент: AJAX-запрос - это тот же http-запрос, что и любой другой (например, запрос, отправленный с помощью html-формы). Абсолютно то же самое .Так что по определению он не может быть менее или более безопасным.

Я не знаю, как объяснить больше и что еще сказать: ajax - это http-запрос.тот же запрос, что и ваш браузер, когда вы открываете страницу SO или когда вы публикуете форму вопроса SO.

Я могу перефразировать ваш вопрос примерно так: «Почему A менее безопасен, чем A».Ответ на него: A не менее безопасен, чем A, потому что A - это A: -S

2 голосов
/ 15 ноября 2010

Любые конфиденциальные данные должны передаваться через HTTPS.GET данные отправляются в строке запроса.Данные POST отправляются в заголовке HTTP-запроса.Аякс может сделать оба.ОБА не безопасны.Вам нужно шифрование на уровне канала, чтобы действительно обезопасить его.

1 голос
/ 16 февраля 2011

Я думаю, проблема в том, что вы используете http.Независимо от того, как вы смотрите на это, оно не будет в безопасности.Если вы используете https, ajax-запрос будет таким же безопасным, как и HTML-форма.

Somy ответом будет использование https, и все будет готово.

1 голос
/ 15 ноября 2010

HTTP не безопасен для личных данных, потому что данные передаются в виде открытого текста.Это может быть перехвачено в любом месте между клиентом и сервером (например, Wi-Fi). Ajax через HTTPS будет намного лучше.

0 голосов
/ 15 ноября 2010

Поскольку браузеры используют один и тот же сетевой стек для HTTP и HTTPS, будь то AJAX или нет, разницы нет. Все заголовки, куки, аутентификация и т. Д. Работают одинаково.

0 голосов
/ 15 ноября 2010

Я не эксперт по безопасности, но я думаю, что было бы более безопасно отправлять его по HTTPS.Просто поиск в Google учит меня, что это можно сделать безопасно, хотя:

http://www.indicthreads.com/1524/secure-ajax-based-user-authentication/ http://msdn.microsoft.com/en-us/magazine/cc793961.aspx (ориентирован на ASP.NET) и т. Д.

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