[HV] Megoldás a CSRF attack detected problémára

Day 2,467, 04:52 Published in Hungary Hungary by HunVeteran



Kedves olvasóim,

Bizonyára sokan szembesültetek vele, hogy amikor megpróbáltok publikálni egy cikket, beleütköztök a "CSRF attack detected" hibaüzenetbe, így meghiúsul a cikk kiadása. Született már cikk korábban ezen probléma áthidalásáról, de még mindig sokszor belefutok abba a kérdésbe, hogy mi ilyenkor a teendő.

Több megoldás is létezik, de ezeket felesleges lenne ecsetelni, ezért azt írom le, amelyet én is mindig használok, ez garantált megoldás, 10-ből 10 esetben beválik.

Ha nem tudod kiadni a cikket a címben említett hibaüzenet miatt, akkor a teendő a következő:

0. Cikk kimentése.
1. Vázlat elvetése gomb (discard draft).
2. Összes eRepes oldal bezárása és kijelentkezés.
3. Bejelentkezés, majd cikk kiadása 10 percen belül.

Kérlek terjesszétek ezt a cikket, ezt a megoldást, hogy mindenkihez eljusson, hiszen több CSRF attack detected hibaüzenet egyenlő kevesebb kiadott cikkel.

A technikai hátteréről:

CSRF (Cross-Site Request Forgery) támadásnak azt nevezik, amikor be vagy jelentkezve egy oldalra és ezt kihasználva valaki eléri, hogy egy olyan linket nyiss meg, amely végrehajt egy általa kívánt műveletet. Az eRep esetében, ha be vagy jelentkezve, akkor elvileg pár jól elhelyezett hivatkozással (pl. egy cikkbe beszúrt képpel) a nevedben garázdálkodhat a támadó.

Ennek kivédésére Plato létrehozott egy ún. "token"-t, amely egy 32 karakter hosszúságú, minden bejelentkezésednél automatikusan generált kódsor. Ezt a kódsort minden általad végrehajtott műveletnél POST-olja a weboldal és ha a feldolgozó fájl nem kapja meg az aktuális token-edet, akkor nem engedi végrehajtani a műveltet (tehát ha írsz egy cikket, akkor nem csak a cikk címét, szövegét és kategóriáját POST-olod, hanem az egyedi token-edet is).

Na most, mint tudjuk, az oldal időről-időre automatikusan kijelentkeztet és hiába pipálod be bejelentkezésnél az emlékezz rám lehetőséget, a ki és bejelentkezés észrevétlenül, de ugyanúgy megtörténik.

Plato elkövetett egy olyan programozási hibát, hogy amikor újra bejelentkeztet az oldal, akkor az adatbázisban egy új tokent tárol le a profilodhoz, ám az automatikusan lementett cikk még a régi tokenedhez van rendelve, így amikor publikálni próbálod a cikket, akkor ezt a régi tokent küldöd a szerver felé, ami nem fogja elfogadni, mivel a nyilvántartása alapján nem az a tokened.

Napi idézet: "A sebtében végzett munka mindig potenciálisan hanyag is." - Michael A. Stackpole

Napi zene: 22 Jump Street - Soundtrack Official Full