NeoBit/Akademija/ Pen Testing
Pen Testing

OWASP Top 10: najčešće web ranjivosti objašnjene

NB NeoBit tim 15. lip 2026 10 min čitanja
OWASP Top 10: najčešće web ranjivosti objašnjene

OWASP Top 10 je standardna referentna lista deset najkritičnijih sigurnosnih rizika za web aplikacije, koju održava neprofitna organizacija OWASP (Open Worldwide Application Security Project). Lista služi razvojnim timovima i sigurnosnim stručnjacima kao polazna točka za prepoznavanje i otklanjanje najčešćih ranjivosti prije nego ih napadači iskoriste. Aktualna verzija objavljena je 2021. godine i grupira rizike u deset širokih kategorija.

Naše rješenje

Penetracijsko testiranje - otkrivamo ranjivosti prije hakera. Ne morate sami; mi to rješavamo za vašu firmu. Zatražite besplatnu procjenu.

U ovom članku objašnjavamo svaku od deset kategorija jednostavnim jezikom, s konkretnim primjerom i praktičnim koracima zaštite. Tekst je namijenjen vlasnicima firmi, IT timovima i razvojnim programerima u Mostaru, BiH i široj regiji koji žele razumjeti gdje su njihove web aplikacije najranjivije.

Što je OWASP Top 10 i zašto je važan

OWASP je globalna zajednica koja besplatno objavljuje alate, dokumentaciju i smjernice za sigurnost softvera. Njihova najpoznatija publikacija upravo je OWASP Top 10 lista, koja se periodično obnavlja na temelju podataka prikupljenih od stotina organizacija i sigurnosnih timova diljem svijeta.

Važno je razumjeti da OWASP Top 10 nije iscrpan sigurnosni standard niti checklista koja jamči potpunu zaštitu. To je lista kategorija rizika koje se najčešće pojavljuju i koje uzrokuju najveću štetu. Ako vaša aplikacija nema niti jednu od ovih deset slabosti, to je odličan temelj, ali ne i jamstvo savršene sigurnosti. Zbog toga ozbiljan penetracijski test ide i dalje od same liste.

OWASP Top 10 lista za 2021. godinu

Sljedeća tablica daje pregled svih deset kategorija po službenim oznakama. Ispod tablice slijedi detaljnije objašnjenje svake.

OznakaKategorijaUkratko
A01Broken Access ControlKorisnik može pristupiti podacima ili akcijama izvan svojih ovlasti
A02Cryptographic FailuresSlaba ili nepostojeća zaštita osjetljivih podataka
A03InjectionNepouzdani podaci se izvršavaju kao naredba (npr. SQL injection)
A04Insecure DesignSigurnosni propusti ugrađeni već u dizajn aplikacije
A05Security MisconfigurationPogrešne postavke servera, baze ili aplikacije
A06Vulnerable and Outdated ComponentsZastarjele biblioteke i komponente s poznatim ranjivostima
A07Identification and Authentication FailuresSlabosti u prijavi i upravljanju sesijama
A08Software and Data Integrity FailuresNepouzdane nadogradnje, paketi i serijalizirani podaci
A09Security Logging and Monitoring FailuresNedovoljno bilježenje i nadzor onemogućuju otkrivanje napada
A10Server-Side Request Forgery (SSRF)Server se navede da šalje zahtjeve na neželjena odredišta

Detaljno objašnjenje svake kategorije

A01: Broken Access Control (Neispravna kontrola pristupa)

Ovo je trenutno najčešća kategorija ranjivosti. Riječ je o situacijama u kojima aplikacija ne provjerava ispravno ima li korisnik pravo na određenu akciju ili podatak. Tipičan primjer: korisnik promijeni broj u URL-u s /racun/123 na /racun/124 i vidi tuđi račun. Zaštita se postiže provjerom ovlasti na strani servera za svaki zahtjev, primjenom načela najmanjih privilegija i odbijanjem pristupa po zadanoj postavci.

A02: Cryptographic Failures (Kriptografski propusti)

Ranije poznata kao Sensitive Data Exposure. Odnosi se na osjetljive podatke (lozinke, brojevi kartica, osobni podaci) koji nisu adekvatno šifrirani u prijenosu ili pohrani. Primjeri uključuju slanje podataka bez HTTPS-a, pohranu lozinki u čistom tekstu ili korištenje zastarjelih algoritama. Zaštita: TLS na svim vezama, šifriranje osjetljivih podataka u bazi i hashiranje lozinki modernim algoritmom poput bcrypta ili Argon2.

A03: Injection (Ubacivanje koda)

Nastaje kada aplikacija nepouzdani korisnički unos proslijedi interpreteru kao dio naredbe. Najpoznatiji oblik je SQL injection, gdje napadač kroz polje za unos ubaci dio SQL upita i tako pročita ili izmijeni bazu. U ovu kategoriju spada i Cross-Site Scripting (XSS). Zaštita se postiže parametriziranim upitima (prepared statements), validacijom unosa i ispravnim kodiranjem izlaza.

A04: Insecure Design (Nesiguran dizajn)

Ova kategorija naglašava da neke ranjivosti nisu greška u kodu, nego u samom dizajnu sustava. Primjer je proces oporavka lozinke koji se oslanja na sigurnosna pitanja s lako pogodljivim odgovorima. Takve propuste ne možete zakrpati naknadno bez izmjene logike. Rješenje je razmišljanje o prijetnjama (threat modeling) već u fazi planiranja aplikacije.

A05: Security Misconfiguration (Sigurnosna pogrešna konfiguracija)

Obuhvaća sve, od otvorenih administratorskih sučelja i zadanih lozinki do detaljnih poruka o greškama koje otkrivaju strukturu sustava. Vrlo čest problem kod firmi u regiji su serveri pušteni u rad sa zadanim postavkama. Zaštita: ukloniti nepotrebne servise, promijeniti zadane vjerodajnice, isključiti detaljne greške u produkciji i redovito provjeravati konfiguraciju.

A06: Vulnerable and Outdated Components (Ranjive i zastarjele komponente)

Moderne aplikacije sastoje se od desetaka vanjskih biblioteka i okvira. Ako bilo koja od njih ima poznatu ranjivost, a nije ažurirana, cijela aplikacija je izložena. Ovo je posebno opasno jer napadi često koriste javno objavljene ranjivosti za koje već postoje gotovi alati. Zaštita: vodite popis svih komponenti, pratite sigurnosna upozorenja i redovito nadograđujte.

A07: Identification and Authentication Failures (Propusti u autentikaciji)

Odnosi se na slabosti u procesu prijave: dopuštanje slabih lozinki, izostanak zaštite od pogađanja lozinki (brute force) i loše upravljanje sesijama. Zaštita uključuje višefaktorsku autentikaciju (MFA), ograničavanje broja pokušaja prijave i sigurno upravljanje tokenima sesije.

A08: Software and Data Integrity Failures (Propusti u integritetu)

Nastaje kada aplikacija vjeruje softveru, nadogradnjama ili podacima iz nepouzdanih izvora bez provjere integriteta. Primjer je automatsko preuzimanje nadogradnje bez provjere digitalnog potpisa, što napadaču omogućuje podmetanje zlonamjernog koda. Zaštita: digitalni potpisi, provjereni repozitoriji i kontrola lanca opskrbe softvera.

A09: Security Logging and Monitoring Failures (Propusti u bilježenju i nadzoru)

Bez kvalitetnih zapisa (logova) i nadzora, napad može trajati danima ili mjesecima neopaženo. Mnoge firme otkriju proboj tek kada ih netko izvana obavijesti. Zaštita: bilježite sve sigurnosno relevantne događaje, čuvajte zapise na sigurnom mjestu i postavite upozorenja na sumnjive obrasce. Upravo u ovom području dolazi do izražaja kontinuirani nadzor kakav pruža Guardian 360 SOC usluga.

A10: Server-Side Request Forgery (SSRF)

Najnoviji član liste. Nastaje kada napadač navede server da pošalje zahtjev na odredište po njegovom izboru, primjerice na interne sustave koji inače nisu dostupni izvana. Tako se može doći do internih metapodataka ili nezaštićenih servisa. Zaštita: validacija i filtriranje svih URL-ova koje server koristi te segmentacija mreže.

Kako se ove ranjivosti spajaju u stvarnom napadu

U praksi napadači rijetko iskoriste samo jednu ranjivost. Mnogo češće ih ulanče jednu za drugom kako bi došli do cilja. Razumijevanje tih kombinacija pomaže shvatiti zašto se na sigurnost mora gledati cjelovito, a ne kategoriju po kategoriju.

Zamislimo tipičan scenarij na web shopu jedne trgovine iz regije. Napadač najprije pronađe formu za pretraživanje proizvoda koja nije zaštićena od ubacivanja koda (A03: Injection) i kroz nju pročita korisničku tablicu iz baze. Lozinke su, nažalost, pohranjene bez modernog hashiranja (A02: Cryptographic Failures), pa ih lako otkrije. Kako stranica nema zaštitu od ponovljenih pokušaja prijave ni višefaktorsku autentikaciju (A07), napadač se prijavljuje kao običan korisnik. Zatim primijeti da promjenom identifikatora u adresi pristupa tuđim narudžbama (A01: Broken Access Control). Na kraju, budući da firma ne prati zapise ni promet (A09), cijeli proces ostaje neopažen tjednima.

Ovaj primjer pokazuje ključnu poruku: pojedinačno svaka slabost možda djeluje umjereno, ali u kombinaciji vodi do potpunog kompromitiranja sustava i curenja podataka kupaca. Upravo zato kvalitetna procjena gleda kako se ranjivosti nadovezuju.

Kako prepoznati ove ranjivosti u vlastitoj aplikaciji

Razumijevanje liste je prvi korak, ali stvarna vrijednost dolazi iz primjene. Evo praktičnih koraka kojima firma može započeti:

  • Inventar aplikacija i komponenti: popišite sve web aplikacije, biblioteke i servise koje koristite. Ne možete zaštititi ono o čemu ne znate.
  • Automatsko skeniranje: alati za statičku i dinamičku analizu otkrivaju dio ranjivosti iz liste, posebno injection i zastarjele komponente.
  • Ručni penetracijski test: automatski alati ne otkrivaju logičke propuste poput Broken Access Control ili Insecure Design. Tu je nužna stručna ruka.
  • Redoviti ciklus: sigurnost nije jednokratni projekt. Nove ranjivosti pojavljuju se stalno, pa testiranje treba ponavljati.

Za mnoge firme u BiH najveći izazov nije nedostatak svijesti, nego nedostatak vremena i specijaliziranog kadra. Tu pomaže suradnja sa specijaliziranim timom. Ako želite saznati gdje stojite, možete ispuniti naš upitnik za penetracijski test i dobiti procjenu opsega.

Kako odrediti prioritete otklanjanja

Kada ste prepoznali ranjivosti, sljedeći je izazov odlučiti čime se baviti prvo. Nemaju sve jednaku težinu. Korisno je svaku ocijeniti kroz dva pitanja: koliko je lako iskoristiti slabost i kolika je šteta ako se to dogodi. Slabost koju je lako iskoristiti i koja vodi do curenja osobnih podataka ima najviši prioritet, dok teoretska ranjivost s malim utjecajem može pričekati.

U praksi savjetujemo da firme krenu od kategorija A01, A02 i A03, jer su najčešće i imaju izravan utjecaj na podatke korisnika. Tek nakon toga rješavaju se konfiguracijski i procesni propusti. Ovakav pristup s prioritetima sprječava rasipanje resursa na manje važne stavke dok kritične ostaju otvorene.

Penetracijsko testiranje kao provjera

Profesionalni penetracijski test redovito koristi ovu listu kao polazni okvir, ali ga nadograđuje stvarnim scenarijima napada prilagođenima vašoj aplikaciji. Test pokazuje ne samo koje ranjivosti postoje, nego i kakav stvarni utjecaj mogu imati ako ih napadač iskoristi u kombinaciji. Rezultat je izvještaj s prioritetima i konkretnim preporukama za otklanjanje, što vašem timu daje jasan plan rada.

Za organizacije koje se pripremaju za certifikaciju poput ISO 27001, redovito testiranje web aplikacija često je i formalni zahtjev. Ako trebate procjenu sigurnosti svojih sustava, slobodno nas kontaktirajte i dogovorit ćemo razgovor o opsegu i ciljevima.

Često postavljana pitanja

Što je OWASP Top 10?

OWASP Top 10 je lista deset najčešćih i najkritičnijih sigurnosnih rizika za web aplikacije koju održava organizacija OWASP. Služi razvojnim timovima i sigurnosnim stručnjacima kao referentni okvir za prepoznavanje i otklanjanje ranjivosti. Aktualna verzija objavljena je 2021. godine.

Koliko se često ažurira OWASP Top 10 lista?

Lista se ne ažurira po fiksnom rasporedu, nego periodično, otprilike svakih nekoliko godina, kada se prikupi dovoljno novih podataka o stvarnim ranjivostima. Prethodne velike verzije objavljene su 2013., 2017. i 2021. godine. Kategorije se s vremenom spajaju, preimenuju ili dodaju kako se mijenjaju obrasci napada.

Znači li usklađenost s OWASP Top 10 da je aplikacija potpuno sigurna?

Ne. OWASP Top 10 pokriva najčešće rizike, ali nije iscrpan sigurnosni standard. Aplikacija može biti otporna na svih deset kategorija, a i dalje imati specifične logičke propuste ili ranjivosti izvan liste. Lista je odličan minimum, ali potpunu sliku daje tek temeljit penetracijski test.

Trebaju li OWASP Top 10 razumjeti i firme izvan IT sektora?

Da. Svaka firma koja ima web stranicu, web shop ili korisnički portal izložena je ovim rizicima, bez obzira na djelatnost. Vlasnicima i menadžmentu nije nužno poznavati tehničke detalje, ali korisno je razumjeti da postoje standardni rizici i da ih treba redovito provjeravati, posebno ako aplikacija obrađuje osobne podatke korisnika.

Povezani vodiči: Cyber sigurnost u BiH - kompletan vodič · Black box, white box i grey box testiranje - razlike · Penetration testing vs skeniranje ranjivosti - što odabrati