В Chrome 76 была прикрыта (https://www.opennet.dev/opennews/art.shtml?num=51122) лазейка в реализации FileSystem API, позволяющая определить из web-приложения применение режима инкогнито. Начиная с Chrome 76 вместо блокировки доступа к FileSystem API, которая использовалась как признак активности режима инкогнито, браузер перестал ограничивать FileSystem API, но очищал вносимые изменения после сеанса. Как оказалось, новая реализация имеет (https://blog.jse.li/posts/chrome-76-incognito-filesystem-timing/) недостатки, позволяющие как и раньше определять активность режима инкогнито.
Суть проблемы в том, что сеанс с FileSystem API в режиме инкогнито является временным, а данные не сохраняются на диск и держатся в оперативной памяти. Соответственно, измеряя (https://github.com/veggiedefender/chrome-filesystem-timing) время сохранения данных через FileSystem API и возникающие отклонения (при сохранении в ОЗУ фиксируются постоянные характеристики, в то время как при записи на диск задержки меняются) можно достаточно уверенно судить просматривается страница в режиме инкогнито или нет. Недостатком метода является достаточно длительный процесс измерения отклонений, который может занять до нескольких минут (демонстрация (https://jse.li/chrome-filesystem-timing/)).
При этом в Chrome 76 остаётся неисправлена ещё одна проблема (https://mishravikas.com/articles/2019-07/bypassing-anti-inco...), позволяющая судить об активности режима инкогнито на основании оценки устанавливаемых ограничений через API Quota Management (https://developer.chrome.com/apps/offline_storage#managing_q...). Для применяемого в режиме инкогнито временного хранилища устанавливаются иные лимиты, чем при полноценном хранении на диске.Напомним, что в определении режима инкогнито заинтересованы сайты, работающие по модели предоставления полного доступа по платной подписке (paywall). Для привлечения новой аудитории подобные сайты предоставляют новым пользователями на какое-то время демонстрационный полный доступ, что активно используется для обхода paywall. Самым простым способом получить доступ к платному контенту в таких системах является использование режима инкогнито, при котором сайт считает, что пользователь открыл страницу первый раз. Издателей такое поведение не устраивает, поэтому они последнее время активно использовали связанную с FileSystem API лазейку для блокировки доступа к сайту при активном режиме инкогнито и вывода требования отключить данный режим для продолжения просмотра.
URL: https://blog.jse.li/posts/chrome-76-incognito-filesystem-timing/
Новость: https://www.opennet.dev/opennews/art.shtml?num=51226
Это не баг, а фича.
Фича не для end-user, конечно.
а если профиль браузера и так сидит в RAM-диске, то как они собираются ловить отклонения?
Никак, они на массы ориентируются
Chromium с profile-sync-daemon не выдаёт задержек и по этому подходу детектируется как инкогнито
Достаточно добавить сохранение на диск в папку /tmp всякой ерунды равной по размеру тому, что сохраяется в памяти перед возвратом из функции и тогда будут необходимые задержки.
Гениально!
1) кэш фс и так все в память пихает пока она есть, поэтому, видимо тест такой долгий, чтобы началась реальная запись,2) папка-тмп, в большенстве осей есть рам-диск
так что нет
А можно и не писать вовсе, а просто рандомные задержки создавать. Костыли-костылики, придумать можно много всякого.
Зачем? Достаточно измерить задержки один раз на зоопарке железа в Гугле, после поставлять параметры распределения, из которого сэмплировать задержки, вместе с браузером.
Оказывается и так можно а то Я paywall обходил прикидываясь ботом гугла %)
А в чём проблема-то?
Просто исходя из функционала инкогнито?
По сути это же «чтобы сайты на компе не мусорили и не лезли в сохранённый мусор» — этот функционал не страдает, а большего никто и не обещал.А на распространителей контента начхать: они вечно чего-то там требуют, то AdBlock им отключи, то карту банковскую засвети, теперь вот режим инкогнито не устраивает. Закрыл сайт — пошёл мимо.
И кстати. В случае с платными сайтами. А в чём проблема куки выборочно поудалять? Т. е. это так себе защитный механизм, в общем-то.
ни в чем, все так и делают, куки для доверенных сайтов оставляют, а для других автоснос ставят: хранить до вкладки, хранить до перезапуска.
Насколько я помню, в Firefox 24 и более ранних версиях можно было запретить куки, кроме исключений, и авторизация работала.
Теперь теоретически так тоже можно сделать, но фактически авторизоваться можно, только если разрешены все куки (кроме сторонних сайтов).
Интересно, что там испортили так, что выборочное разрешение кук перестало работать?В Pale Moon вроде пока все нормально.
Даже не знал что такой функционал был нативно. Как бы там не было, функционал сохранения выборочных кук есть, наверное, в любом ныне существующем аддоне для их автоудаления
Сначала прочитал как Systemd76, производитель ноутбуков на Линуксе
System76
> Как оказалось, новая реализация имеет недостаткиДа там особо не старались, приложили подорожник, изобразили вид деятельности. Там, поди, ещё 1000 и 1 вектор определения.
Для себя делали, вестимо.
Достали уже, загрубить таймер до секунды.
Лучше до 15 минут. Точность: "без четверти 12" :)
Так вроде уже загрубляли, чтобы от Meltdown или Spectre защищаться. Или отпять уточнили?
Скорее всего не достаточно загрубили.
> Напомним, что в определении режима инкогнито заинтересованы сайты, работающие по модели предоставления полного доступа по платной подписке (paywall).Да напишите уже прямо - эротические видеочаты!
в видеочатах чаще просто "токены", а платные подписки вовсе не обязательно даже для чегото эротического, фильмы-сериалы..
Wall Street Journal гораздо дороже будет чем десяток эротических видеочатов.
Кругом - бабло...
Пробовали и по карточкам распределять, и не раз, но как-то не пошло.
че-то демонстрация в режиме инкогнито тоже выдала разные результаты:
...1844,1687,1625,1621,1600,1616,1640,2069,1741,1634,1361,1115,1106,1102,1108,1112,1117,1122,1126,1122,1180,1499,1195,1200,1173,1314,1158,1138,1140,1139,1123...
так что весьма сомнительный метод
>Издателей такое поведение не устраивает, поэтому они активно использовали связанную с FileSystem API лазейку для вывода требования отключить режим инкогнито для продолжения просмотра.Кончится это тем, что будут требовать "бесплатной" привязки мобильного для одноразовой активации "бесплатного" режима. После телефон заносится в базу, а база продаётся data-брокерам.
"Chrome 76" и "инкогнито" - две взаимоисключающие друг друга понятия.