Vulnerabilitatea față de CSRF

Acasă> Securitate> Vulnerabilitate la CSRF. Ascunde Referer când redirecționează

Astăzi voi adăuga o serie de articole despre CSRF. Dar acum voi merge fără probleme la "partea baricadei". După cum se spune, cineva este avertizat, este înarmat. Dacă dezvoltatorul știe cum operează un intrus, el va ști cum și de ce să apărați.







În general, dacă sunteți interesat în modul de a modifica utilizatorul fără a specifica un Referer, atunci întrebați sub pisica :)

Ce este un referitor?

Referer este o mică parte a informațiilor pe care browserul le trimite la server când faceți clic pe un link de pe un site la altul. Acest lucru este util pentru dezvoltatori. De exemplu, pot determina că vizitatorul a venit pe site-ul dvs. din motoarele de căutare și apoi a adaptat paginile site-ului la solicitarea dvs. Dar, în parte, aceasta poate fi numită scurgere de informații personale, astfel încât toate browserele au capacitatea de a dezactiva transmisia Referer. Dar într-un fel titlul în sine poate fi interesant din punctul de vedere al securității.

Exemplu de utilizare a referrer

Ne apropiem de CSRF

Se pare că problema a fost rezolvată. Numai paginile valide pot trimite interogări de succes. Dar a existat o problemă - ce să faceți cu utilizatorii care au dezactivat Referer? Ei pur și simplu nu vor putea folosi această aplicație deoarece cererile lor vor fi blocate. În multe sisteme, aceasta a fost decisă după cum urmează: o situație similară cu absența unui referitor a fost interpretată față de utilizator și cererea a fost considerată legală și a intrat în procesare.

Ascunde Referer

Această soluție la această problemă a creat o gaură de securitate imensă, iar atacatorii au început să caute modalități de a profita de acest lucru. Au fost propuse mai multe metode pentru acest tip de ascundere, dar folosind tehnologii de redirecționare bazate pe server. Dar aceste metode nu prezintă interes, deoarece sunt destul de bine cunoscute. Vreau să vă ofer o altă opțiune - abilitatea de a redirecționa un utilizator la generarea unei cereri GET sau POST arbitrare numai din partea clientului pe JavaScript pur.






Iată câteva exemple de implementări:

funcția lose_in_webkit (url) // chrome o pierde în datele uris
locație = "date: text / html,



Trimiteți-le prietenilor: