User Tools

Site Tools


deserializacija

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
deserializacija [2023/12/01 16:41] zrinkadeserializacija [2025/12/01 11:40] (current) – external edit 127.0.0.1
Line 23: Line 23:
 } }
 </code> </code>
-Unesena lozinka korisnika gleda se tako što se deserijalizira sve što se nalazi u kolačiću iz toga izvuče atribut //password//. Recimo da je napadač unio broj 0. Ako lozinka korisnika kojemu provaljuje u račun (varijabla //$password//) ne sadrži brojeve, izjednačavanje unesene lozinke s njom će vratiti istinu, odnosno sustav će unesenu lozinku tretirati kao ispravnu, iako je zapravo možda potpuno različita od prave. Važno je napomenuti da ovo funkcionira samo iz razloga što deserijalizacija čuva tip podatka. Da se lozinka gledala direktno iz polja za unos, broj 0 pretvorio bi se u niz znakova "0", a tada bi usporedba bila neistinita.+Unesena lozinka korisnika gleda se tako što se deserijalizira sve što se nalazi u kolačiću iz toga izvuče atribut //password//. Recimo da je napadač unio broj 0. Ako lozinka korisnika kojemu provaljuje u račun (varijabla //$password//) ne sadrži brojeve, izjednačavanje unesene lozinke s njom će vratiti istinu, odnosno sustav će unesenu lozinku tretirati kao ispravnu, iako je zapravo možda potpuno različita od prave. Važno je napomenuti da ovo funkcionira samo zbog razloga što deserijalizacija čuva tip podatka. Da se lozinka gledala direktno iz polja za unos, broj 0 pretvorio bi se u niz znakova "0", a tada bi usporedba bila neistinita.
  
 ===Magične metode=== ===Magične metode===
Line 91: Line 91:
 ===Mjere zaštite=== ===Mjere zaštite===
 Za sigurniju deserijalizaciju preporučljivo je koristiti se formatima koji imaju dobro definirana pravila deserijaliziranja, primjerice JSON ili XML. Na taj se način smanjuje vjerojatnost da će netko unijeti neku dodatnu logiku prilikom deserijalizacije jer je već mnogo toga jasno definirano.\\ Za sigurniju deserijalizaciju preporučljivo je koristiti se formatima koji imaju dobro definirana pravila deserijaliziranja, primjerice JSON ili XML. Na taj se način smanjuje vjerojatnost da će netko unijeti neku dodatnu logiku prilikom deserijalizacije jer je već mnogo toga jasno definirano.\\
-Poželjno je složiti aplikaciju tako da ona pri serijalizaciji označi svaki podatak nekom vrstom potpisa. Zatim prije deserijalizacije treba provjeriti postoji li taj potpis te, ako ga nema, odbaciti podatak jer je vjerojatno maliciozan. Na taj način može se spriječiti ubacivanje štetnih podataka od strane napadača.\\+Poželjno je složiti aplikaciju tako da ona pri serijalizaciji označi svaki podatak nekom vrstom potpisa. Zatim prije deserijalizacije treba provjeriti postoji li taj potpis te, ako ga nema, odbaciti podatak jer je vjerojatno maliciozan. Tako se može spriječiti ubacivanje štetnih podataka od strane napadača.\\
 Neki jezici implementiraju zaštitu podataka koji se serijaliziraju. Primjerice, u Javi postoji sučelje //Serializable// koje mora implementirati svaka klasa objekata ako se oni serijaliziraju. Ako postoje podatci koji se ne smiju serijalizirati, njih treba označiti kao //private transient//. //Private// znači da se taj podatak ne bi trebao vidjeti niti u jednoj klasi izvan one u kojoj je definiran. //Transient// je ono što zapravo sprečava serijalizaciju podatka. \\ Neki jezici implementiraju zaštitu podataka koji se serijaliziraju. Primjerice, u Javi postoji sučelje //Serializable// koje mora implementirati svaka klasa objekata ako se oni serijaliziraju. Ako postoje podatci koji se ne smiju serijalizirati, njih treba označiti kao //private transient//. //Private// znači da se taj podatak ne bi trebao vidjeti niti u jednoj klasi izvan one u kojoj je definiran. //Transient// je ono što zapravo sprečava serijalizaciju podatka. \\
 Postoje mnogi alati i biblioteke čija je zadaća osigurati deserijalizaciju, primjerice Javini //SerialKiller// i //NotSoSerial// te //Serial  Whitelist Application Trainer// (SWAT) i mnogi drugi. Postoje mnogi alati i biblioteke čija je zadaća osigurati deserijalizaciju, primjerice Javini //SerialKiller// i //NotSoSerial// te //Serial  Whitelist Application Trainer// (SWAT) i mnogi drugi.
deserializacija.1701448909.txt.gz · Last modified: 2025/12/01 11:40 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki