Новае месцазнаходжанне VPN не скідвае дазвол на апавяшчэнні
Дазвол на апавяшчэнні належыць крыніцы сайта, а не вашаму IP. Паглядзіце, які ўзровень захоўвае кожны дазвол і чаму дастаўка push праз VPN выглядае зламанай.
Думка, што змена VPN можа скінуць дазвол сайта на апавяшчэнні, памылковая так, што каштуе людзям рэальнага часу. Нічога ў вашым адрасе выхаду не з’яўляецца часткай запісу дазволу. Дазвол сайта захоўваецца супраць яго крыніцы ўнутры аднаго профілю браўзера, таму пераход з аднаго сервера на іншы пакідае яго дакладна там, дзе ён быў. Што сапраўды змяняецца, дык гэта ваша сесія, і менавіта на яе людзі звычайна глядзяць, калі вырашаюць, што VPN нешта зрабіў з іх апавяшчэннямі.
Тры сховішчы, якія выглядаюць як адна налада
Дазвол — гэта адзін запіс, перамыкач апавяшчэнняў аперацыйнай сістэмы — іншы, а ўласны стан падпіскі сайта — трэці. Кожны адклікаецца ў іншым месцы іншым дзеяннем.
| Layer | Where it lives | What actually revokes it |
|---|---|---|
| Permission grant | Browser profile, keyed by origin | Site settings, site reset, or clearing site data |
| OS delivery switch | Operating system notification settings | The OS per-app or per-browser toggle |
| Push subscription | Push service, bound to a service worker registration | Unsubscribe, 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 выглядае вінаватым
Змяніце адрас выхаду, і шматлікія сайты паўторна аўтэнтыфікуюць вас, змяняюць кукі сесіі або перамалёўваюць старонку налад з нуля. Тады апавяшчэнні з гэтага сайта могуць спыніцца з прычын, якія не маюць нічога агульнага з дазволам: новая сесія — не тая, што падпісана, сайт паўторна правярае сваю згоду на маркетынг, або рэгіянальнае правіла хавае функцыю. Дастаўка таксама можа не ўдацца, бо хост канцавой кропкі push недасягальны або павольны праз новы шлях, і збоку гэта выглядае гэтак жа, як адкліканы дазвол.
Чытайце ўзроўні асобна, перш чым рабіць высновы. Панэль дазволаў кажа, ці існуе дазвол; спіс service worker кажа, ці існуюць рэгістрацыя і падпіска; перамыкач аперацыйнай сістэмы кажа, ці можа браўзер паказваць наогул хоць штосьці.
Змяніце тое, што вы меліся змяніць
Калі вы хочаце, каб апавяшчэнні спыніліся, адклічце дазвол для гэтай крыніцы і адпішыце push-наладу сайта, затым пераканайцеся, што перамыкач аперацыйнай сістэмы не адзінае, што стаіць паміж сайтам і вашым экранам блакіроўкі. Блакаванне будучых апавяшчэнняў не выдаляе даныя ўліковага запісу, якія сайт ужо мае, і гэта асобны запыт да сайта.
Калі вы хочаце іншы шлях сеткі, змяніце VPN. Ён уплывае на ідэнтычнасць сесіі, геаправілы і тое, да якіх сервераў вы можаце дасягнуць, і пакідае дазвол на апавяшчэнні некранутым.
Стаўцеся да змесціва апавяшчэння з такой жа падазронасцю праз VPN, як і без яго. Знаёмы браўзер, які паказвае паведамленне, не доказ таго, што адпраўнік або спасылка законныя.