După cum știți, atunci când trimiteți o cerere către server, browserul trimite, de asemenea, anteturi care conțin cookie-uri ale domeniului corespunzător, în care identificatorul de sesiune este de obicei stocat. Astfel, scriptul server înțelege că sunteți conectat și aveți acces la anumite fișiere de sesiune. Bine.
Să presupunem că pe un domeniu N există o pagină de actualizare a profilului care procesează o cerere a formularului
La trimiterea unei astfel de solicitări, datele din chestionar se modifică în consecință.
Ce va face browserul? Este adevărat că va executa interogarea N / profile.php? Name = Vasjasurname = Pupkin. de așteptare pentru a obține imagine MIME imagine / jpeg. Desigur, browserul la această solicitare va adăuga anteturi care conțin cookie-uri de domeniu N, inclusiv ID-ul sesiunii. Datele dvs. de profil vor fi modificate cu succes, până când, pe nesimțite, veți admira imaginea somepage / image.jpg.
De asemenea, trebuie să știți că acest tip de atac se numește CSRF - Forgery Cross Site Request (cereri falsificate de site-uri). O modalitate de a preveni un atac este folosirea unui token - o valoare generată aleatoriu care este actualizată de fiecare dată când o interogare este stocată într-o sesiune și adăugată la adresa URL. Dacă jetonul trimis în cererea GET nu se potrivește cu jetonul stocat în sesiune, atunci cererea este probabil generată pe un alt site. Deoarece datele stocate în sesiune nu părăsesc limitele serverului, un atacator va putea să învețe tokenul prin furtul cookie-urilor sau prin obținerea URL-ului cu jetonul pe care victima a trecut ultima dată.
Concluzia este simplă: să nu arătați niciodată unchilor necunoscuți cookie-urile și url-ul dvs., în timp ce sunteți conectat (ă).