REST и CSRF (подделка запроса перекрестного сайта)

Действительно ли Подделка Запроса перекрестного Сайта возможна против УСПОКОИТЕЛЬНОГО сервиса не сохраняющего состояние?

Я не говорю о псевдо-REST, где сервер помнит, что Вы зарегистрированы на пути cookie. Я говорю о чистом no-application-state-on-the-server REST без cookie.

Я использую аутентификацию SSL и Стандартную аутентификацию. Для каждого запроса, которым заголовок Авторизации должен быть там. В смысле JSP нет никакой "сессии", хотя существует своего рода сессия на уровне SSL.

Поэтому давайте предположим, что я просматриваю законную веб-страницу, которая выполняет запросы Ajax, и так или иначе я перехожу к другой странице на той же вкладке или другой вкладке, и та страница выполняет тот же запрос Ajax. (Я предполагаю, что на законной веб-странице нет никакого вредоносного кода; это - другая вещь полностью, и что-либо возможно в этом случае.)

Когда вторая страница выполнит запрос Ajax, браузер поставит тот же заголовок Авторизации? т.е. браузер скажет, "О, Вы хотите пойти ТУДА снова? Эй, у меня просто, оказывается, все еще есть ключ!"?

Кроме того, разве злонамеренный сценарий не мог сделать, запрос xhr, затем в обратном вызове берут запрос от ioargs, получают заголовок Авторизации и un-Base64 имя и пароль?

14
задан AviD 28 August 2013 в 23:16
поделиться

1 ответ

Отказ от ответственности: я не эксперт по безопасности.

Использование HTTP Basic Auth не предотвращает CSRF-атаки через GET-запросы. Например, кто-то другой может включить img-тег в свою HTML-страницу, который делает GET на каком-нибудь известном URI, и ваш браузер с удовольствием отправит вам базовую информацию об автозапросе. Если операция GET "безопасна" (что является правилом #1 для всего, что претендует на RESTful), это не создаст проблемы (за пределами пустой траты полосы пропускания).

Ajax не является проблемой из-за политики одного и того же происхождения.

Только включение сгенерированного сервером токена в генерируемый вами HTML и подтверждение его присутствия в запросах на отправку формы, защитит вас от того, что кто-то просто включит "чужую" форму в свои страницы. Вы можете ограничить это для типов содержимого, генерируемых браузерами; нет необходимости делать это для XHR-запросов.

5
ответ дан 1 December 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: