Comments 58
Комп: i3 7100, 8GB, SSD, firefox 63.0.3 (64-бит)
Но статья интересная :)
За пару секунд лис сожрал всю доступную память и повесил комп наглухо
Пишу коммент с телефона, планирую хард ресет…
Reisub
история почти как в этой копипасте: lurkmore.to/Копипаста: Пацаны_не_качайте!
Я понимаю, что утрировано, но почему вы считаете, что ваши жизненные ценности важнее окружащим, а не вам лично?
Просто сразу падает вкладка. На всю остальную работу никак не влияет.
i5, SSD, 16 RAM
imgur.com/bUQKf4G
Я что-то подобное писал на базе XML и тоже для борьбы с ботами. Кстати с неясным результатам. :D
Иду по ссылке. Если не вернусь, считайте коммунистом....
П.П. Упал только таб — FF63.0.3, Linux, 4GB RAM и 8GB swap. Упал сравнительно быстро через 1..2 минуты интенсивного выделения памяти.
FF/Fennec 63.0.2, Android, 8G RAM. Браузер валится за 2-3 секунды и полностью.
Видимо, полноценной изоляции вкладок под Android у них нет.
CraSSh — это кроссбраузерная чисто декларативная DoS-атака
Что значит чисто декларативная?
А я чем сенсация? Есть уйма способов наступить на грабли в CSS. Трансформации, анимации, фильтры, составные бекграунды, маски, шрифты, svg и т.п. Креш вкладки это стандартный механизм браузера для отстрела проблемных страниц. Из-за этого подобные вещи сложно анализировать, в отличие от JS, где есть отладчик, профайлеры и т.п.
Автор оригинального поста — Константин Сафонов (kasthack): https://www.linkedin.com/in/kasthack/
Автор с переводом не согласен, так как перевод плохо передает оригинал. Так же автор недоволен отсутствием ссылки на его LinkedIn.
Мобильный Яндекс браузер явно это предусмотрел. Выполняет попытку около 5-10 секунд, пишет что что-то не так и пытается перезагрузить страницу. Повторяет ещё 2 таких попытки и говорит что не смог. То есть они явно при загрузке страницы проверяют не слишком ли много ресурсов потребляет страница.
Edge за 5 секунд сделал тоже самое — ничего не зависло
Firefox очень удачно повесил саму винду — только рестарт…
Ну что-то слишком громкое заявление про «обвалить любой современный браузер». Во-первых — в коментах уже отписали, что этот метод почти ни один браузер не обвалил (максимум вкладку). Ну и в iOS проверил — просто долго грузится, устал ждать, закрыл вкладку. Такого можно достичь гораздо более простым способом. Во-вторых… да хватит первых. Желтушная статья про ничего нового
Нужен shadow dom, которому разработчики веб-приложений могли бы указать что-то вроде «лимит памяти 10мб», чтобы пользовательский контент со стилями не мог съесть вообще всю оперативную память и уронить вкладку целиком.
А вычисления js/css в основном потоке хорошо бы ограничить в скорости исполнения на уровне браузера (например, 10мс вычисляем, 20мс спим), если превышен лимит в ~100мс времени. Во-первых если оно не уложилось, то в любом случае это надолго. Во-вторых отличная мотивация разработчиков к написанию отзывчивых интерфейсов.
Во-вторых отличная мотивация разработчиков к написанию отзывчивых интерфейсов.
Нет, не получится. Не замотивируются. Начнут выпускать "ускоритель интернетов", который будет отключать все эти ограничения.
Нужен shadow dom, которому разработчики веб-приложений могли бы указать что-то вроде «лимит памяти 10мб»Так ведь следующая статья будет на тему «указал 100ГБ, ололо, я сломал все браузеры»
лимит памяти 10мб
640Кб хватит всем. Подгрузится highres-фото и приложение развалится.
например, 10мс вычисляем, 20мс спим
Поломает все хоть сколько-то сложные вещи на js, начиная с Google Docs и заканчивая agar.io.
Во-вторых отличная мотивация разработчиков к написанию отзывчивых интерфейсов.
Поощряет писать на flash / java / silverlight / чём угодно без таких ограничений.
Браузер съел всю память, лампочка дисков горит постоянно, другие вкладки работают (пишу сейчас), другие приложения запускают. Есть легкое лагание. Подожду, пока переполнится SLC кэш на втором диске, может эффект позаметнее будет.
… не дождался. FF сказал, что вкладка упала, и освободил память.
PS: в Мозиллу (или куда еще) баг отписали?
И благополучно продолжила работать.
CraSSh: ломаем все современные браузеры вычислениями в CSS