Подтвердить что ты не робот

Почему не удается захватить cookie сессии Yesod?

Yesod book говорит

Шифрование не позволяет пользователю проверять данные, а подпись гарантирует, что сеанс не может быть захвачен или подделан.

Мне непонятно, почему это так. Если перехватчик захватывает куки файл, когда он отправляется с сервера и использует его до того, как законный пользователь сделает другой запрос, не будет ли захвачен сеанс?

Мне кажется, что единственный способ действительно предотвратить захват сеанса - использовать SSL повсюду. Но если я это сделаю, то подписание и шифрование, сделанное Yesod, становятся ненужными накладными расходами (EDIT: накладные расходы, связанные с предотвращением угона). Как отмечает @sr_ в комментариях, это все равно полезно в противном случае).

4b9b3361

Ответ 1

Это хороший улов. Это было более точным, когда мы включили бы IP-адрес клиента в файл cookie, чтобы предотвратить угон. В сочетании с защитой от несанкционированного доступа это сделало невозможным для работы MITM, если вы не были NAT за тем же маршрутизатором или с использованием того же самого прокси.

К сожалению, нам пришлось отключить эту защиту из-за опасений относительно прокси. Возможно, что один пользовательский запрос поступает из нескольких IP-адресов из-за промежуточных прокси-серверов. У меня нет данных, чтобы рассказать, как часто это происходит, но было достаточно заботы об этой функции безопасности, вызывающей поломку, которую мы отключили.

Спасибо, что принесли это, Я исправил книгу.