Задать вопрос
27cm
@27cm
TODO: Написать статус

Есть ли смысл защищать от CSRF кнопку «Выход»?

Всем доброго.

Случайно наткнулся на код защиты запроса logout'а пользователя: AccountController.php#L90-L99

Автор показывает форму подтверждения, и только после получения подтверждения разлогинивает пользователя, хотя можно было и проще:
<form src="/logout">
    <input type="hidden" value="csrf-token">
    <input type="submit" value="Выход">
</form>


Нужно ли защищать запрос разлогинивания пользователя от CSRF?
Как злоумышленник может экплуатировать эту уязвимость в данном случае?
  • Вопрос задан
  • 1579 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 2
nazarpc
@nazarpc
Open Source enthusiast
По-моему хорошей практикой является защита от CSRF всегда и везде
Ответ написан
Tark
@Tark
Pyramid'альный мир
Эксплуатировать эту уязвимость очень просто: нужно на этом же сайте разместить "картинку" с адресом /logout. Или дать ссылку на страницу своего блога, где будет такая картинка. Каждый, кто её "посмотрит", будет принудительно выброшен из системы. Ничего такого, просто неприятность.

Пока в vk не сделали csrf повсюду, таким образом люди без своего ведома вступали в группы или голосовали в нужном голосовании за нужный результат.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Denormalization
@Denormalization
>Как злоумышленник может экплуатировать эту уязвимость в данном случае?
Найти багу на странице логина. Но чтобы ее эксплуатировать, нужно чтобы пользователь туда зашел. Следовательно нужно принудительно разлогинить пользователя, чтобы не ждать этого момента.
Или, например, не давать администратору сделать что-то (например забанить юзера) принудительно его выкидывая из системы...

Вообще это дело личной паранои. Не найдут CSRF тут, найдут другую ошибку в другом месте.
Ответ написан
Комментировать
Protos
@Protos
Спрашивай - отвечу
Например, у меня самописная программа под моей учеткой работает (ищет клиентов), мне было бы обидно если бы кто-то за меня выходил
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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