Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: CSRF-suojaus

HTML5 [01.12.2014 13:03:12]

#

Haluan vain varmistaa, että olen ymmärtänyt, miten ns. csrf-suojaus toteutetaan.

Käsitykseni mukaan se tehdään lyhykäisesti näin:

The Alchemist [01.12.2014 13:24:38]

#

Evästeitä nimenomaan ei saa käyttää vaan arvo säilytetään palvelimella käyttäjän sessiossa.

Csrf-suojauksen toteuttamisesta kannattaa lukea ensin ja lähteä arpomaan vasta sitten.

General Recommendation: Synchronizer Token Pattern

timoh [01.12.2014 16:22:17]

#

The Alchemist kirjoitti:

Evästeitä nimenomaan ei saa käyttää vaan arvo säilytetään palvelimella käyttäjän sessiossa.

Tokenin voi lätkäistä myös keksiin kuten HTML5 tekee.

Se mitä OWASPin sivuilla tarkoitetaan ettei "Using a Secret Cookie" toimi, niin meinaa että tokeni tulisi pelkästään keksistä (eikä sitä verrata input-kentästä tulleeseen arvoon).

Mutta jos tokeni tulee keksistä sekä input-kentästä, niin silloin noiden vertaaminen ajaa asian (ulkopuolelta et pääse victim domainin kekseihin joten vastaavaa arvoa et saa siirrettyä bogus-formin inputtiin).

The Alchemist [01.12.2014 18:28:45]

#

Tiedän kyllä eron tuolla mainitun salaisen keksin ja tässä käytetyn keksin välillä ja siksi en linkannutkaan kyseistä varoitusta tänne. Mielessäni pyörittelin asian kuitenkin niin, ettei evästeen käyttö ole toimiva idea, mutta näköjään sille on oma kohtansa samaisessa ohjeessa, joten voinemme pitää toteutusta turvallisena.

HTML5 [01.12.2014 18:31:28]

#

The Alchemist kirjoitti:

Evästeitä nimenomaan ei saa käyttää vaan arvo säilytetään palvelimella käyttäjän sessiossa. – –

Esimerkiksi tällä sivustolla csrf-tunniste säilytetään evästeessä (OP-CSRF).

timoh kirjoitti:

– – Mutta jos tokeni tulee keksistä sekä input-kentästä, niin silloin noiden vertaaminen ajaa asian (ulkopuolelta et pääse victim domainin kekseihin joten vastaavaa arvoa et saa siirrettyä bogus-formin inputtiin).

The Alchemist kirjoitti:

– – mutta näköjään sille [evästeen käytölle] on oma kohtansa samaisessa ohjeessa, joten voinemme pitää toteutusta turvallisena.

Näin ajattelinkin. Kiitos!

Metabolix [01.12.2014 19:15:06]

#

The Alchemist kirjoitti:

Evästeitä nimenomaan ei saa käyttää vaan arvo säilytetään palvelimella käyttäjän sessiossa.

Tietoturvan kannalta on melkein sama, onko evästeessä suoraan CSRF-arvo vai pelkästään istunnon tunniste. Kun hyökkääjä ei voi lukea evästeitä, hän ei saa hyökkäyslomakkeelleen tarvittavaa CSRF-arvoa. Jos taas hyökkääjä voi lukea evästeet, peli on joka tapauksessa menetetty. Eroa on siinä varsin teoreettisessa tilanteessa, että hyökkääjä saisi vakoiltua evästeet mutta ei HTML-koodia.

Ehkä tässä oli väärinkäsitys, jota timoh jo oikaisi: pelkkä eväste ei riitä, vaan tarvitaan sekä eväste että lomakkeen kenttä.

HTML5 kirjoitti:

Esimerkiksi tällä sivustolla – –

Ohjelmointiputkaa kannattaakin käyttää esimerkkinä, koska se on aina täydellinen!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta