Zabranjuje korišćenje funkcija koje izvršavaju kod prenet kao string. Na primer: eval, setTimeout, setInterval će biti blokirane zbog podešavanja unsafe-eval.
Sav sadržaj sa spoljnih izvora je takođe blokiran, uključujući slike, CSS, WebSockets i, posebno, JS.
Putem teksta i slika
Primećeno je da moderni pregledači konvertuju slike i tekstove u HTML kako bi poboljšali njihov prikaz (npr. postavljanje pozadine, centriranje, itd.). Stoga, ako se slika ili tekstualni fajl, poput favicon.ico ili robots.txt, otvori putem iframe-a, prikazuje se kao HTML. Važno je napomenuti da ove stranice često nemaju CSP zaglavlja i možda ne uključuju X-Frame-Options, omogućavajući izvršavanje proizvoljnog JavaScript koda sa njih:
Slično tome, odgovori na greške, poput tekstualnih datoteka ili slika, obično dolaze bez CSP zaglavlja i mogu izostaviti X-Frame-Options. Greške mogu biti izazvane da se učitaju unutar iframe-a, omogućavajući sledeće radnje:
// Inducing an nginx errorframe=document.createElement("iframe");frame.src="/%2e%2e%2f";document.body.appendChild(frame);// Triggering an error with a long URLframe=document.createElement("iframe");frame.src="/"+"A".repeat(20000);document.body.appendChild(frame);// Generating an error via extensive cookiesfor(var i=0;i<5;i++){document.cookie=i+"="+"a".repeat(4000)};frame=document.createElement("iframe");frame.src="/";document.body.appendChild(frame);// Removal of cookies is crucial post-executionfor(var i=0;i<5;i++){document.cookie=i+"="}
Nakon pokretanja bilo kojeg od navedenih scenarija, izvršavanje JavaScript-a unutar iframe-a je moguće na sledeći način: