Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:cross_site_request_forgery_napadi [2021/01/17 16:17]
sbrkic [Ideja i tijek CSRF napada] ispravak gramatike i formatiranja
racfor_wiki:cross_site_request_forgery_napadi [2024/12/05 12:24] (trenutno)
Redak 12: Redak 12:
 ==== Osnove HTTP kolačića (engl. cookies) ==== ==== Osnove HTTP kolačića (engl. cookies) ====
  
-Protokol HTTP u svojim inicijalnim verzijama nije imao nikakvu mogućnost pohrane stanja (engl. stateless), odnosno svi klijentski zahtjevi na poslužitelju su se obrađivali anonimno, pri čemu poslužitelj nije mogao odrediti identitet korisnika koji je uputio pojedini zahtjev.  Vrlo brzo je razvojem weba došlo do potrebe za identifikacijom pojedinih korisnika, primarno u cilju pružanja bolje usluge korisniku (pamćenje upisanih podataka u formama, personalizirane poruke korisniku i slično).+Protokol HTTP u svojim inicijalnim verzijama nije imao nikakvu mogućnost pohrane stanja (engl. stateless), odnosno svi klijentski zahtjevi na poslužitelju su se obrađivali anonimno, pri čemu poslužitelj nije mogao odrediti identitet korisnika koji je uputio pojedini zahtjev [1].  Vrlo brzo je razvojem weba došlo do potrebe za identifikacijom pojedinih korisnika, primarno u cilju pružanja bolje usluge korisniku (pamćenje upisanih podataka u formama, personalizirane poruke korisniku i slično).
  
 Kolačići (engl. cookies) najkorištenija su metoda identifikacije korisnika. Razvijeni su u kompaniji Netscape, a njihovo korištenje ubrzo je standardizirano i implementirano od strane svih većih web preglednika. Kolačići (engl. cookies) najkorištenija su metoda identifikacije korisnika. Razvijeni su u kompaniji Netscape, a njihovo korištenje ubrzo je standardizirano i implementirano od strane svih većih web preglednika.
Redak 101: Redak 101:
 ==== Ideja i tijek CSRF napada ==== ==== Ideja i tijek CSRF napada ====
  
-CSRF (engl. Cross-Site Request Forgery) napadi temelje se na korištenju kolačića za autentifikaciju korisnika, te na načinu na koji se HTML forme s klijenta šalju poslužitelju. +CSRF (engl. Cross-Site Request Forgery) napadi temelje se na korištenju kolačića za autentifikaciju korisnika, te na načinu na koji se HTML forme s klijenta šalju poslužitelju [2]
  
 Zamislimo da neka banka ima mrežnu stranicu na kojoj svojim korisnicima nudi opciju uplate novca na neki drugi račun, primjerice za plaćanje režija. Jednostavan primjer HTML forme za ostvarivanje navedene funkcionalnosti prikazan je u  nastavku. Zamislimo da neka banka ima mrežnu stranicu na kojoj svojim korisnicima nudi opciju uplate novca na neki drugi račun, primjerice za plaćanje režija. Jednostavan primjer HTML forme za ostvarivanje navedene funkcionalnosti prikazan je u  nastavku.
Redak 164: Redak 164:
 <form action="example.com/uplata", method="POST"> <form action="example.com/uplata", method="POST">
   <!-- sakriveni dio forme -->   <!-- sakriveni dio forme -->
-  <input type="number"    name="broj_racuna"  type="hidden"> +  <input type="number"    name="broj_racuna"  type="hidden" value="1234"> 
-  <input type="number"    name="iznos_hrk"    type="hidden">+  <input type="number"    name="iznos_hrk"    type="hidden" value="9999">
   <!-- benigni dio forme   -->   <!-- benigni dio forme   -->
   <input type="text"      name="benigno_polje">   <input type="text"      name="benigno_polje">
Redak 176: Redak 176:
 U prikazanom primjeru zloupotrebljava se atribut ''type'' HTML forme čija je vrijednost postavljena na ''hidden'' za ključeve ''broj_racuna'' i ''iznos_hrk'', što znači da se navedena polja **ne će prikazati u žrtvinom web poslužitelju**. Međutim, klikom na gumb "Slanje" sva polja u formi će se poslati, uključujući i ona koja su postavljena kao sakrivena. Napadač navedenu formu treba objaviti na nekoj web stranici te "natjerati" žrtvu da ju ispuni odnosno pošalje.  U prikazanom primjeru zloupotrebljava se atribut ''type'' HTML forme čija je vrijednost postavljena na ''hidden'' za ključeve ''broj_racuna'' i ''iznos_hrk'', što znači da se navedena polja **ne će prikazati u žrtvinom web poslužitelju**. Međutim, klikom na gumb "Slanje" sva polja u formi će se poslati, uključujući i ona koja su postavljena kao sakrivena. Napadač navedenu formu treba objaviti na nekoj web stranici te "natjerati" žrtvu da ju ispuni odnosno pošalje. 
  
-Osim činjenice da ovu varijantu napada, za razliku od GET varijante, nije vrlo jednostavno izvesti, dodatna manjkavost ove varijante je u tome sto se u zahtjevu prema poslužitelju banke šalje i dodatna vrijednost u formi, odnosno ključ ''benigno_polje''. Ukoliko bankarski poslužitelj vrši validaciju forme, tj. provjerava da se u formi nalaze točno oni ključevi koji se moraju nalaziti, poslužitelj invalidira pridospjeli zahtjev, te napad ne uspijeva.+Osim činjenice da ovu varijantu napada, za razliku od GET varijante, nije vrlo jednostavno izvesti, dodatna manjkavost ove varijante je u tome što se u zahtjevu prema poslužitelju banke šalje i dodatna vrijednost u formi, odnosno ključ ''benigno_polje''. Ukoliko bankarski poslužitelj vrši validaciju forme, tj. provjerava da se u formi nalaze točno oni ključevi koji se moraju nalaziti, poslužitelj invalidira pridospjeli zahtjev, te napad ne uspijeva.
  
 === CSRF napadi maskirani u HTML slike === === CSRF napadi maskirani u HTML slike ===
Redak 194: Redak 194:
 ==== Prevencija CSRF napada ==== ==== Prevencija CSRF napada ====
  
-Postoje dva osnovna načina zaštite od CSRF napada, a oba se temelje na nasumično generiranoj tajnoj vrijednosti koju poslužitelj šalje legitimnom klijentu, a klijent primljenu vrijednost prenosi poslužitelju kao dodatni parametar HTML forme. Poslužitelj zatim provjerava jednakost poslane i primljene tajne vrijednosti. Taj se tajni ključ naziva CSRF token ili sinkronizacijski token.+Postoje dva osnovna načina zaštite od CSRF napada [3], a oba se temelje na nasumično generiranoj tajnoj vrijednosti koju poslužitelj šalje legitimnom klijentu, a klijent primljenu vrijednost prenosi poslužitelju kao dodatni parametar HTML forme. Poslužitelj zatim provjerava jednakost poslane i primljene tajne vrijednosti. Taj se tajni ključ naziva CSRF token ili sinkronizacijski token.
  
 Ideja je da napadač ne moze izvršiti CSRF napad jer ne može pogoditi tajnu vrijednost koju je poslužitelj poslao legitimnom klijentu, ako je vrijednost uopće poslana. Ideja je da napadač ne moze izvršiti CSRF napad jer ne može pogoditi tajnu vrijednost koju je poslužitelj poslao legitimnom klijentu, ako je vrijednost uopće poslana.
racfor_wiki/cross_site_request_forgery_napadi.1610900234.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0