Думка про те, що зміна VPN може скинути дозвіл сайту на сповіщення, хибна так, що це коштує людям реального часу. Ніщо у вашій вихідній адресі не є частиною запису про дозвіл. Дозвіл сайту зберігається щодо його джерела всередині одного профілю браузера, тому переїзд з одного сервера на інший залишає його рівно там, де він був. Змінюється ж ваша сесія, і зазвичай саме на неї дивляться люди, коли вирішують, що VPN щось зробив із їхніми сповіщеннями.

Три сховища, які виглядають як одне налаштування

Дозвіл — це один запис, перемикач сповіщень операційної системи — інший, а власний стан підписки сайту — третій. Кожен відкликається в іншому місці іншою дією.

LayerWhere it livesWhat actually revokes it
Permission grantBrowser profile, keyed by originSite settings, site reset, or clearing site data
OS delivery switchOperating system notification settingsThe OS per-app or per-browser toggle
Push subscriptionPush service, bound to a service worker registrationUnsubscribe, or a subscription the service considers expired

До чого прив'язаний дозвіл

Дозвіл на веб-сповіщення діє за джерелом і за профілем. Він іде за https://app.example.com а не за вашою публічною адресою, тому той самий сайт, запитаний на іншій машині, має запитати знову, і тому інша кінцева точка VPN не створює нового запиту. Перевірте це там, де воно записується: панель сповіщень у налаштуваннях сайту перелічує джерела, яким надано дозвіл, а сама сторінка може повідомити свій стан.

chrome://settings/content/notifications
navigator.permissions.query({name: 'notifications'})
chrome://serviceworker-internals

Запит повідомляє стан, який джерело вже має, не запитуючи нового, а сторінка service worker — це місце, де реєстрація та її push-підписка живуть або не можуть жити. Якщо дозвіл є, а доставка все одно не працює, ви дивитеся на третій шар, а не на перший.

Шлях push — це окремі відносини

Web Push додає підписку, якою сторінка не керує напряму. Браузер запитує PushSubscription у push-служби, передає сторінці URL кінцевої точки, а доставка згодом іде на цю точку й передається зареєстрованому service worker. Документація MDN про PushSubscription описує кінцеву точку як власний URL на push-сервері для worker, що підписується, і в цьому вся суть: це можливість доставки, а не публічна адреса, яку ви публікуєте.

Звідси випливають два наслідки. По-перше, до URL кінцевої точки слід ставитися як до чутливих даних, тому йому не місце в публічній гілці підтримки. По-друге, push-служба застосовує власну автентифікацію, тому самого лише володіння URL недостатньо, щоб довести, що хтось може надіслати автентифіковане повідомлення. Коли ви відписуєтеся, браузер велить push-службі анулювати підписку, і саме ця дія припиняє доставку. Зміна VPN-серверів — не ця дія.

Чому VPN виглядає винним

Змініть вихідну адресу, і багато сайтів заново автентифікують вас, змінюють сесійний cookie або заново малюють сторінку налаштувань з нуля. Тоді сповіщення з цього сайту можуть припинитися з причин, не пов'язаних із дозволом: нова сесія не та, що підписана, сайт заново перевіряє власну маркетингову згоду, або регіональне правило приховує функцію. Доставка може не працювати й тому, що хост кінцевої точки push недоступний або повільний через новий шлях, а ззовні це виглядає точно так само, як відкликаний дозвіл.

Читайте шари окремо, перш ніж щось підсумовувати. Панель дозволів каже, чи існує дозвіл; список service worker каже, чи є реєстрація та підписка; перемикач операційної системи каже, чи може браузер узагалі щось показувати.

Змінюйте те, що ви збиралися змінити

Якщо ви хочете зупинити сповіщення, відкличте дозвіл для цього джерела й відпишіть push-налаштування сайту, а потім переконайтеся, що перемикач операційної системи не єдине, що стоїть між сайтом і вашим екраном блокування. Блокування майбутніх сповіщень не видаляє дані облікового запису, які сайт уже має, і це окремий запит до сайту.

Якщо ви хочете інший мережевий шлях, змініть VPN. Він впливає на ідентичність сесії, географічні правила та те, до яких серверів ви можете дістатися, і залишає дозвіл на сповіщення недоторканим.

Ставтеся до вмісту сповіщення з тією ж підозрою через VPN, як і без нього. Знайомий браузер, що показує повідомлення, не доводить, що відправник або посилання легітимні.

Схожі статті