Content Security Policy (CSP) je sigurnosni mehanizam implementiran u web aplikacije za ublažavanje rizika od Cross-Site Scripting (XSS) napada. XSS napadi se događaju kada napadač ubaci zlonamjerne skripte na web stranicu, koje zatim izvršava žrtvin preglednik. Ove skripte mogu ukrasti osjetljive informacije, manipulirati sadržajem ili izvesti druge zlonamjerne aktivnosti.
CSP funkcionira tako da administratorima web stranica omogućuje definiranje skupa pravila koja određuju koji se izvori sadržaja smatraju pouzdanima i koje web stranica može učitati. Ta se pravila priopćavaju pregledniku putem zaglavlja HTTP odgovora Content-Security-Policy ili meta oznake u HTML dokumentu.
Definiranjem Politike sigurnosti sadržaja, programeri web aplikacija mogu ograničiti vrste sadržaja koje web stranica može učitati i pokrenuti. To pomaže u sprječavanju izvršavanja zlonamjernih skripti koje su ubacili napadači. CSP pruža nekoliko direktiva koje se mogu koristiti za definiranje ovih ograničenja, uključujući:
1. "default-src": Određuje zadani izvor za sadržaj kao što su skripte, listovi stilova i slike. Ova se direktiva koristi kada nijedna druga direktiva nije posebno definirana za određenu vrstu sadržaja.
2. "script-src": Određuje izvore iz kojih se skripte mogu učitati. Ograničavanjem dopuštenih izvora programeri mogu spriječiti izvršavanje zlonamjernih skripti iz nepouzdanih domena.
3. "style-src": Određuje izvore iz kojih se stilske tablice mogu učitati. Ova direktiva pomaže spriječiti uključivanje zlonamjernih stilskih tablica koje mogu manipulirati izgledom ili ponašanjem web stranice.
4. "img-src": Određuje izvore iz kojih se slike mogu učitati. Ograničavanjem dopuštenih izvora programeri mogu spriječiti učitavanje slika koje sadrže zlonamjerni kod ili služe kao prijenosnik napada.
5. "frame-src": Određuje izvore iz kojih se mogu učitati okviri ili iframeovi. Ova direktiva pomaže spriječiti napade clickjackinga ograničavanjem ugrađivanja web stranica iz nepouzdanih izvora.
6. "connect-src": Određuje izvore prema kojima web aplikacija može slati mrežne zahtjeve. Ova direktiva pomaže u sprječavanju krađe podataka ograničavanjem odredišta na pouzdane domene.
Ovo je samo nekoliko primjera smjernica koje daje CSP. Programeri mogu prilagoditi pravila na temelju specifičnih zahtjeva svoje web aplikacije. Važno je napomenuti da CSP radi prema pristupu bijele liste, što znači da su samo navedeni izvori dopušteni, a svi ostali izvori blokirani su prema zadanim postavkama.
Implementacijom CSP-a, programeri web aplikacija mogu značajno smanjiti rizik od XSS napada. Kada napadač pokuša ubaciti zlonamjerne skripte na web-stranicu, preglednik, slijedeći pravila CSP-a, blokira izvršavanje tih skripti ako nisu iz pouzdanih izvora. To sprječava napadačeve skripte od pokretanja i štiti korisnike web aplikacije od potencijalne štete.
Content Security Policy (CSP) je sigurnosni mehanizam koji pomaže ublažiti rizik od XSS napada dopuštajući razvojnim programerima web aplikacija da definiraju skup pravila koja ograničavaju izvore sadržaja koje web stranica može učitati i izvršiti. Implementacijom CSP-a i pravilnom konfiguracijom njegovih direktiva, programeri mogu zaštititi svoje web aplikacije i svoje korisnike od štetnih učinaka XSS napada.
Ostala nedavna pitanja i odgovori u vezi Skriptiranje na više mjesta:
- Događaju li se pohranjeni XSS napadi kada je zlonamjerna skripta uključena u zahtjev web aplikaciji i zatim poslana natrag korisniku?
- Opišite kako napadač može ubaciti JavaScript kod prerušen u URL na stranicu s pogreškom poslužitelja kako bi izvršio zlonamjerni kod na web mjestu.
- Objasnite kako se AngularJS može iskoristiti za izvršavanje proizvoljnog koda na web stranici.
- Kako napadač iskorištava ranjivo polje unosa ili parametar za izvođenje XSS napada odjekom?
- Što je cross-site scripting (XSS) i zašto se smatra uobičajenom ranjivošću u web aplikacijama?
- Koje je predloženo rješenje u istraživačkom radu "CSP je mrtav, živio CSP" za rješavanje izazova implementacije CSP-a?
- Koja su ograničenja i izazovi povezani s implementacijom CSP-a?
- Kako Politika sigurnosti sadržaja (CSP) pomaže u zaštiti od XSS napada?
- Koje su uobičajene obrane od XSS napada?
- Što je cross-site scripting (XSS) i zašto predstavlja značajan sigurnosni problem za web aplikacije?
Pogledajte više pitanja i odgovora u Cross-site scripting