Комментарии 87
А где ссылка на первоисточник-то?
Кстати первоисточник тоже я — поэтому не обвиняйте в корявом переводе.
Чтобы знали те, кто ее не знал


LimitRequestFieldSize в апаче?
Алгоритмы серверов, вероятно, сейчас отрабатывают в случае кукоспама медленноWhat? Можно пояснить мысль?
А зачем им обрабатывать такой огромный запрос?
Размер, который может обработать сервер, зависит от настроек сервера, те в свою очередь могут зависеть от конкретного сайта. Если знает администратор, что его сайт использует куки на десятки килобайт — настроит сервер так, чтобы тот принимал десятки килобайт.
Браузеры общаются с разными сайтами и потому поддерживают размер с запасом, тем более им это гораздо дешевле обходится.
Браузеры общаются с разными сайтами и потому поддерживают размер с запасом, тем более им это гораздо дешевле обходится.
Как выкидывать спам-куки — описал ниже в теме.
устанавливаются не только владельцем сайтаЕсли сайт находится в доменной зоне третьего уровня, которая ему не подконтрольна, то он должен быть готов к тому, что завтра его вообще владелец зоны может отключить. Собственно, не надо на доменах третьего уровня рядом с сомнительными соседями размещать важную информацию.
Nginx не зависает, а запрос отклоняется с ошибкой. Запрос не обрабатывается, поскольку срабатывает ограничение на количество потребляемых ресурсов, заголовок не помещается в сконфигурированный буфер и весь запрос отклоняется. Вы предлагаете, чтобы веб-сервер сожрал всю память в попытке обработать запрос и был прибит OOM-киллером вместе с остальными, хорошими запросами?
Кстати вот да.
Видимо, самый доступный выход для админов nginx — настроить кастомную страницу для 413 ошибки, которая джаваскриптом бы стирала все куки домена и перезагружала страницу.
Видимо, самый доступный выход для админов nginx — настроить кастомную страницу для 413 ошибки, которая джаваскриптом бы стирала все куки домена и перезагружала страницу.
Угу. И тогда Егор Хомяков напишет пост о том, как своей страничкой на вордпрессе/гитхабе стереть все куки всех других сайтов на вордпрессе/гитхабе.
А как проставить куку на .googleusercontent?
Ссылка с первоисточника:
translate.google.com/translate?hl=en&sl=en&tl=ru&u=homakov.github.io%2Fcookiebomb.html&sandbox=1
translate.google.com/translate?hl=en&sl=en&tl=ru&u=homakov.github.io%2Fcookiebomb.html&sandbox=1
Егор, прекрати ломать интернеты! (с)
Некоторая информация по ограничениям.
Если вкратце:
Chrome: 180 * 4096 = 720Кб
Firefox: 150 * 4097 = ~600Кб
IE: ~10к символов
Opera 12: ~10Кб, новые версии, вероятно, как Chrome.
Если вкратце:
Chrome: 180 * 4096 = 720Кб
Firefox: 150 * 4097 = ~600Кб
IE: ~10к символов
Opera 12: ~10Кб, новые версии, вероятно, как Chrome.
Предлагаю пробовать на живую. Хочу не заходить на определенные сайты после посещения определенной страницы.
Краткий пример уязвимости
jsfiddle.net/6t97K/
После воспроизведения скрипта, ломается окно result. Проверял в Chrome и Firefox.
jsfiddle.net/6t97K/
После воспроизведения скрипта, ломается окно result. Проверял в Chrome и Firefox.
400 Bad Request
Request Header Or Cookie Too Large
Ну впринципе, сервер распознает в чем дело.
Request Header Or Cookie Too Large
Ну впринципе, сервер распознает в чем дело.
Если я правильно понял автора, то смысл этого как раз в этом. Не поломать сервер сайд гигабайтами траффика(тем более что есть ограничения), а вызвать проблемы на стороне клиента.
1. Запустить подобный скрипт на mysuperpage.narod.ru
2. Пользователь, получивший такое количество кук будет испытывать проблемы на *.narod.ru. Пока не почистит куки или проблема не будет решена на сервер сайде.
Вот и поднят вопрос как это порешать.
Один из вариантов.
1. Запустить подобный скрипт на mysuperpage.narod.ru
2. Пользователь, получивший такое количество кук будет испытывать проблемы на *.narod.ru. Пока не почистит куки или проблема не будет решена на сервер сайде.
Вот и поднят вопрос как это порешать.
Один из вариантов.
Что самое главное. Узнать, что что-то идёт не так, как задумано, можно будет или самому, натолкнувшись на уязвимость, или только начав получать отзывы от посетителей. Увеличения трафика нет, со стороны сервера, может, 400я ошибка выпадет.
А для пользователей — не работает.
А для пользователей — не работает.
Анализ логов никто не отменял.
Интересно, только на днях размышлял на тему: у скольких крупных сайтов настолько много куков, что они не влезают в первый TCP пакет запроса? Насколько можно оптимизировать время отклика и трафик, если от этого избавиться? Пытался даже нагуглить исследования на эту тему, но не нашел.
Имхо, это как с window.opener — работает и в фб, и в тви — ибо expected behavior. Фб говорят, что просто мониторят подобное и банят, если кто-то злодействует.
P.S. Пример для хабравчан.
P.S. Пример для хабравчан.
Не работает. Google Chrome 32.0.1700.76
Все работает, ибо стандарт (коммент ниже).
Ну вы ещё поспорьте со мной о том, что у меня работает, а что нет. Никакого alert`a не выскакивает. Открывал и в текущей вкладке, и в новой, и в новом окне. И обновлял. Тишина.
UDP: а по ссылке с этой страницы работает.
UDP: а по ссылке с этой страницы работает.
когда открываешь с Альтом в новом окне opener не создается. Ну а вообще это и нужная функциональность
Немного не то, вот twitter.com/sergeybelove/status/420541617745829888
Наверно глупый вопрос, но нельзя ли поставить куку на домен ".ru"? Или вообще на корень — "."? По какому принципу ограничивается насколько общую куку можно ставить?
Принципы достаточно сложные и проблемные, про них написали в heroku devcenter.heroku.com/articles/cookies-and-herokuapp-com
This restriction on cookie setting at the TLD level has been around since the early days of the web. It exists due to security reasons, both to prevent accidentally retransmitting cookies to 3rd parties, and to help provide some partial protection against cookie stuffing and more general types of session fixation attacks.
This becomes more complicated when we consider many countries use second-level domains (e.g., .co.uk, .ne.jp) as pseudo TLDs, and have few or no restrictions on who may register subdomains.
To address that issue, for many years browser vendors used internally-maintained lists of public domains, regardless of what level they fall in the DNS hierarchy. Inevitably this led to inconsistent behavior across browsers at a very fundamental level.
The Mozilla Foundation eventually began a project known as the Public Suffix List, publicsuffix.org/ to record all of these public domains and share them across browser vendors. Beyond Mozilla Firefox, Google and Opera have both incorporated this list into their browsers.
tools.ietf.org/html/rfc6265#section-5.3 этот момент подробно описан в RFC
На страницу с ошибкой можно встроить js, который почистит куки.
Но ведь она не откроется до тех пор пока ты не почистишь куки.
Разве это не проблема браузеров? Нельзя ли установить max_body_size равный браузерному лимиту?
Причем тут
max_body_size
? Куки передаются в заголовке. Почему нельзя размер соответсвующих буферов установить равному, уже ответил выше в теме.deleted
Устанавливем Cookie Monster и не разрешаем кому попало ставить печеньки. Особенно актуально для всяких CDN-ов, которым куки вообще не нужны и разрешать их — не лучшая идея (всё-таки user-content, как никак). Ну в нём вроде бы можно запретить third-level доменам ставить куки на second-level без прямого разрешения.
Одно НО — любой вменяемый вебсервис, уровня GitHub, ответит HTTP 400 и никакого флуда не выйдет.
Задача не задосить сервер, а сделать сайт недоступным для юзера. Юзер увидит 400 и что? Пойдет на улицу гулять.
Наличие флуда — заметно. Идёт борьба с проблемой.
Спадение количества пользователей при отсутствии какого-то подозрительного трафика — проблема. Ещё вычленить надо. А злоумышленнику того и надо.
Спадение количества пользователей при отсутствии какого-то подозрительного трафика — проблема. Ещё вычленить надо. А злоумышленнику того и надо.
CSP директиву бы придумали, чтоб разрешать браузеру посылать куки, если source домен не запрещен в CSP.
Как в Тайланде, Егор? Катои красивые?
В общем-то давно пора уже подписывать cookies, решит кучу проблем и не только эту.
У меня в броузере IE9 стоит опция third-party cookie: block. Меня эта уязвимость тоже коснется?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Куки-бомбы, или как положить интернеты