Απαγορεύει τη χρήση οποιασδήποτε λειτουργίας που εκτελεί κώδικα που μεταδίδεται ως συμβολοσειρά. Για παράδειγμα: οι eval, setTimeout, setInterval θα αποκλειστούν όλες λόγω της ρύθμισης unsafe-eval.
Αποκλείονται επίσης και τα περιεχόμενα από εξωτερικές πηγές, συμπεριλαμβανομένων εικόνων, CSS, WebSockets και, ιδιαίτερα, JS.
Μέσω Κειμένου & Εικόνων
Παρατηρείται ότι οι σύγχρονοι περιηγητές μετατρέπουν εικόνες και κείμενο σε HTML για να βελτιώσουν την εμφάνισή τους (π.χ. ρύθμιση φόντου, κεντράρισμα κ.λπ.). Συνεπώς, αν μια εικόνα ή ένα αρχείο κειμένου, όπως το favicon.ico ή το robots.txt, ανοίγεται μέσω ενός iframe, απεικονίζεται ως HTML. Είναι σημαντικό να σημειωθεί ότι αυτές οι σελίδες συνήθως δεν περιέχουν κεφαλίδες CSP και ενδέχεται να μην περιλαμβάνουν το X-Frame-Options, επιτρέποντας την εκτέλεση αυθαίρετου JavaScript από αυτές:
Ομοίως, οι αποκρίσεις σφαλμάτων, όπως αρχεία κειμένου ή εικόνες, συνήθως δεν περιέχουν κεφαλίδες CSP και μπορεί να παραλείπουν τις X-Frame-Options. Τα σφάλματα μπορούν να προκαλέσουν τη φόρτωση μέσα σε ένα iframe, επιτρέποντας τις ακόλουθες ενέργειες:
// 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+"="}
Μετά την ενεργοποίηση οποιουδήποτε από τα αναφερόμενα σενάρια, η εκτέλεση του JavaScript μέσα στο iframe είναι εφικτή ως εξής: