Мысль о том, что смена 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, как и без него. Знакомый браузер, показывающий сообщение, не доказывает, что отправитель или ссылка легитимны.

Похожие статьи