Conturile clienților nu au ce căuta în browserul principal
Un profil de browser comun pune toate sesiunile clienților în același borcan de cookie-uri, sub extensii care le pot citi pe toate. Iată ce oferă o sesiune furată și ce înseamnă izolare reală.

Nu ni s-a scurs niciodată o sesiune de client dintr-un profil de browser comun și aș prefera să scriu articolul ăsta înainte să se întâmple. Configurația care produce una este banală: un laptop cu un singur profil Chrome, paisprezece panouri de client autentificate, o extensie de parole, una de capturi de ecran, una care formatează JSON și ceva pentru notițe. Toate acele autentificări împart același borcan de cookie-uri, același director de stocare și un set de extensii cărora li s-a dat acces la fiecare pagină.
Sfatul obișnuit tratează asta ca pe o problemă de confort: nu poți fi conectat la două conturi simultan, așa că folosește profiluri. Este adevărat și este partea cea mai puțin interesantă. Problema reală este că un singur profil este o singură graniță de securitate, iar majoritatea oamenilor țin cincisprezece clienți înăuntru.
Un singur borcan de cookie-uri, toți clienții
Un profil de browser ține cookie-uri, stocare locală, IndexedDB, cache și service workers pe site, și le împarte între toate taburile din profilul respectiv. Când te autentifici în panoul de administrare al unui client, cookie-ul de sesiune ajunge în depozitul comun. Când te autentifici în contul tău pe același serviciu, una dintre cele două sesiuni o înlocuiește pe cealaltă, ceea ce este deranjamentul pe care îl știe toată lumea. Partea care contează este mai tăcută: orice cod care rulează în profilul acela poate citi ce este în depozit.
Codul acela nu este doar site-ul pe care intri. Este fiecare extensie instalată, fiecare script pe care extensiile îl injectează și orice reușește să ruleze într-o pagină pe care ai deschis-o. Un profil nu este un compartiment. Este o cameră cu toate ușile deschise.
Ce oferă de fapt o sesiune scursă
Un cookie de sesiune este o acreditare de tip bearer. Ghidul OWASP de management al sesiunilor o spune direct: identificatorul de sesiune este „temporarily equivalent to the strongest authentication method”, iar „anyone who can read it can reuse unexpired tokens”. Același ghid notează că ștergerea cookie-ului de pe calculatorul tău nu invalidează copia pe care o are deja altcineva; doar serverul o poate face.
Deci întrebarea nu este „ce poate vedea cineva în panoul acesta”, ci „ce ar putea face persoana care ține cookie-ul, ca mine, acum”. Pe panourile pe care le folosește un studio, răspunsul include de obicei citirea tuturor înregistrărilor la care are acces contul, schimbarea setărilor de DNS sau de deploy, invitarea unui membru nou, crearea unei chei API și schimbarea contactului de facturare. Câteva dintre ele supraviețuiesc schimbării parolei: o cheie API creată dintr-o sesiune deturnată funcționează și după ce schimbi parola, iar un utilizator invitat rămâne invitat până observă cineva.
Detectarea este slabă prin construcție. Reutilizarea unei sesiuni arată ca utilizatorul legitim, dintr-o adresă nouă, iar mulți furnizori alertează doar la schimbarea parolei sau la un dispozitiv nou. Dacă tokenul a plecat de pe laptopul tău, nu există niciun dispozitiv nou de semnalat.
Extensiile văd mai mult decât tabul în care ești
Documentația Chrome despre permisiuni listează ce permite accesul la gazdă: citirea cookie-urilor prin API-ul de cookie-uri, injectarea de content scripts, monitorizarea și controlul cererilor de rețea și modificarea antetelor cererilor și răspunsurilor. O extensie cu permisiuni largi de gazdă nu urmărește un tab. Urmărește profilul.
Gândește-te apoi cum ajung și cum se schimbă extensiile. Instalezi o unealtă de capturi pentru o singură sarcină și îi dai acces la toate site-urile, pentru că promptul face alegerea ușoară. Se actualizează în tăcere la fiecare câteva săptămâni. Proprietatea se poate schimba. O dependență din interiorul ei poate fi compromisă. Niciunul dintre evenimente nu te mai întreabă nimic și niciunul nu se vede în bara de sus.
Mitigarea nu este să citești cu atenție fiecare prompt de permisiuni, deși ajută. Este un profil de lucru fără nicio extensie și un profil separat de navigare, unde extensiile au voie să existe. Cele două nu ar trebui să fie niciodată aceeași fereastră.
O fereastră privată nu este o graniță
Navigarea privată izolează stocarea de sesiunea normală și o aruncă la închiderea ferestrei. Asta rezolvă problema „al doilea login” și nimic altceva. Este același binar de browser, aceeași configurație la nivel de profil, aceeași rețea, același director de descărcări și aceleași extensii, dacă vreuna are voie în ferestrele private.
Eșuează și exact în direcția care contează. O fereastră privată este proiectată să nu lase urme pe calculatorul tău, nu să protejeze sesiunea de calculator. Dacă un malware sau o extensie malițioasă rulează ca tine, modul privat este o cameră nouă și goală, în aceeași casă.
Folosește ferestrele private pentru o verificare rapidă pe un site în care nu vrei să lași un cookie persistent. Nu le folosi ca loc în care stau conturile clienților, pentru că te vei autentifica din nou mâine, iar obiceiul de a face asta în profilul principal este exact felul în care sesiunile ajung în borcanul comun.
Cum arată izolarea adevărată
Izolarea înseamnă că patru lucruri sunt separate, nu unul. Stocarea: cookie-uri, stocare locală, IndexedDB, cache și service workers. Procesul: instanța de browser care ține contul nu este aceeași care ține restul. Acreditările: parolele salvate pentru contul acela sunt limitate la el. Extensiile: codul care poate citi pagina nu este comun cu toate celelalte identități.
Un profil Chrome separat îți dă primul lucru, aproape tot al doilea și un depozit de parole separat. Pagina de ajutor Google spune că, folosind profiluri, poți ține „all your Chrome info separate, like bookmarks, history, passwords, and other settings”. Este o graniță reală și este minimul pe care ar trebui să îl folosească cineva care lucrează cu clienți: un profil pe client, numit după client, niciodată amestecat cu cel personal.
Ce nu îți dă un profil este o graniță față de propriul utilizator de sistem. Toate profilurile de pe calculator sunt citibile de orice proces care rulează ca tine, inclusiv un profil pe care nu l-ai deschis astăzi. Dacă amenințarea care te interesează este malware pe laptop, pasul următor este un cont separat de sistem, o mașină virtuală sau o aplicație dedicată care ține fiecare cont în propria partiție de stocare și în propriul proces. Este mai incomod și este răspunsul onest pentru cineva care ține acreditări către infrastructura de producție a unui client.
Regulile pe care le urmăm
- Un profil pe client, creat înainte de prima autentificare, numit astfel încât să vezi dintr-o privire în ce fereastră ești.
- Niciun cont de client nu se autentifică în profilul personal sau în cel de navigare, nici „doar o dată”.
- Profilul de lucru nu are extensii. Dacă o sarcină cere una, se face în profilul de navigare, nu lângă sesiunile clienților.
- Fără parole partajate. Cere clientului să te invite în echipa, în spațiul de lucru sau în organizația lui, ca accesul să poată fi retras fără să schimbe un secret pe care îl știu și alții.
- Autentificare cu doi factori sau passkey pe fiecare cont care oferă asta, inclusiv pe cel al clientului.
- Când se termină contractul, închide profilul, șterge autentificările salvate și cere clientului să îți retragă accesul. Ștergerea copiei tale nu îi închide sesiunea.
- O dată pe trimestru, deschide lista de extensii și elimină ce nu poți explica.
Nimic din toate acestea nu este exotic. Este aceeași disciplină ca ținerea acreditărilor de producție departe de o aplicație de notițe partajată, aplicată locului în care acreditările chiar stau.
Dacă problema este doar comutarea între conturi
Există o problemă separată și mai mică: vrei să fii conectat la șase conturi simultan, fără logout. Profilurile, taburile cu containere, selectoarele de echipă și aplicațiile dedicate rezolvă toate asta, cu compromisuri diferite la memorie și la obiceiuri. Am scris despre variante în mai multe conturi cloud fără logout. Citește articolul acela dacă scopul este confortul. Citește articolul acesta dacă întrebarea este cât te costă o singură sesiune compromisă.
Distincția contează pentru că varianta comodă nu este mereu cea sigură. Un tab care arată șase panouri alături este o interfață frumoasă peste un borcan comun de cookie-uri, dacă nu separă cu adevărat stocarea pe cont. Întreabă care dintre cele patru separări ți le dă, înainte să îi încredințezi autentificarea de producție a unui client.
O variantă de a face asta
Am construit My Provider Dash Manager pentru că voiam o singură fereastră pentru conturile clienților, cu o graniță reală de stocare între ele: o partiție Chromium persistentă separată pe fiecare cont, fără extensii comune, autentificări salvate limitate la domeniile proprii ale fiecărui serviciu. Este o implementare a ideii, iar ideea este ce contează. Un profil de browser pe client, creat cu intenție și șters când se termină contractul, elimină deja cea mai mare parte din riscul descris aici.
Întrebări frecvente
- Ce se întâmplă dacă un cookie de sesiune al unui client este furat?
- Cine îl ține poate acționa ca acel cont până când serverul invalidează sesiunea. Asta înseamnă de obicei citirea a tot ce poate citi contul și, des, schimbarea setărilor, invitarea de utilizatori, crearea de chei API sau editarea datelor de facturare. Ștergerea cookie-ului pe calculatorul tău nu face nimic copiei pe care o are altcineva; doar furnizorul poate revoca sesiunea, de aceea încheierea unui contract ar trebui să includă cererea ca clientul să îți retragă accesul.
- Modul incognito este suficient pentru a separa conturile clienților?
- Nu. O fereastră privată izolează stocarea de sesiunea normală și o aruncă la închidere, dar este același browser, același calculator, aceeași rețea și același set de extensii, acolo unde extensiile au voie în ferestre private. Rezolvă autentificarea dublă, nu compartimentarea riscului. Pentru lucrul cu clienți, folosește un profil separat sau o graniță mai puternică și tratează incognito ca pe o unealtă de moment.
- O extensie poate citi celelalte taburi ale mele?
- Da, în limitele permisiunilor pe care le are și ale profilului în care rulează. Permisiunile de gazdă din Chrome îi permit unei extensii să citească cookie-uri, să injecteze content scripts, să observe cererile de rețea și să modifice antete pentru site-urile pe care le acoperă. Dacă are acces larg, poate ajunge la fiecare panou de client deschis în profilul respectiv. Un profil de lucru fără extensii elimină complet această clasă de risc.
- Profilurile de browser sunt o izolare suficientă pentru lucrul cu clienți?
- Sunt minimul și sunt mult mai bune decât un singur profil comun: stocare separată, parole salvate separate, context de navigare separat. Nu sunt însă o graniță față de propriul utilizator de sistem, așa că orice proces care rulează ca tine poate citi toate profilurile de pe calculator. Dacă ții acreditări de producție pentru un client, ia în calcul un cont separat de sistem, o mașină virtuală sau o aplicație dedicată, cu stocare partiționată pe cont.
- Cum returnează un studio accesul când se termină contractul?
- Cere clientului să îți scoată contul din echipă sau organizație, apoi șterge profilul de browser și autentificările salvate de la tine și revocă tokenurile API pe care le-ai creat. Nu te baza pe schimbarea unei parole comune ca unic pas, pentru că alte persoane o pot ști în continuare, iar sesiunile deja emise funcționează mai departe. Scrie predarea în contract, ca să se întâmple la fel de fiecare dată.


