Мы создаем приложение с поддержкой Java Spring/Hibernate, работающим в JBoss. Внешний интерфейс AngularJS.Достаточно ли Access-Control-Allow-Origin предотвращать атаки XSRF?
Мы еще ничего не сделали для установки токенов XSRF на сервере. У нас также нет (пока еще нет) требования предоставить другим доменам доступ к нашим веб-ресурсам.
Я решил, что постараюсь выяснить, был ли наш сайт уязвим для атаки XSRF, поэтому я установил вредоносный Webapp для публикации в одном из наших настоящих приложений, используя URL-адрес Angular $ http.post(). Я вошел в реальное приложение, а затем попытался отправить сообщение из вредоносного приложения.
В браузере я получил 401 ответа и увидел ошибку:
XMLHttpRequest cannot load http://localhost:8080/user/delete. No
'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:6543' is therefore not allowed access. The response
had HTTP status code 401.
на стороне сервера не настроен для установки Access-Control-Allow-Origin на ответ, таким образом, выше ошибки.
Итак, мой вопрос: просто ли исключить Access-Control-Allow-Origin из заголовка ответа, достаточного для предотвращения атак XSRF?
Есть ли способ, которым я все еще мог бы атаковать XSRF на моем сайте, даже если Access-Control-Allow-Origin не установлен? Если да, то как? Я бы хотел продемонстрировать эту атаку.
Спасибо.
большой, спасибо. это то, что я искал. – lostdorje
Возможно, я сказал слишком рано. Установка 'withCredentials' в true не повлияла. Я также переработал $ httpProvider.defaults.headers.common ['X-Requested-With'] = 'XMLHttpRequest' в сочетании с 'withCredentials', и я не мог придумать вариант, который сделал запрос успешным. – lostdorje
@lostdorje: Убедитесь, что у вас есть сторонние файлы cookie, включенные в браузере, и вы можете проверить, отправляются ли файлы cookie с использованием прокси-сервера перехвата (некоторые инструменты для разработчиков фактически не показывают файлы cookie из-за той же политики происхождения). Я ответил на очень похожий вопрос на днях (http://security.stackexchange.com/a/71082/8340), однако это было с точки зрения злоумышленника. – SilverlightFox