iframe sandbox: wat elk token toestaat

iframe sandbox-attribuut

iframe sandbox: elk token, met een live schakeldemo | We.Inc

Zet elk iframe sandbox-token aan en uit en zie scripts, formulieren, pop-ups en meldingen werken of stoppen. Elk token uitgelegd.

Een leeg sandbox-attribuut zet een iframe flink op slot: geen scripts, geen formulierverzending, geen pop-ups, geen meldingen en een ondoorzichtige origin die elke same-origin-controle laat mislukken. Elk allow-token dat u toevoegt, geeft één bevoegdheid terug. Schakel hieronder de tokens om en zie precies wat er stukgaat, en kopieer dan de kleinste set die uw embed nodig heeft.

Veelvoorkomende toepassingen en de tokens die ze nodig hebben

Het sandbox-attribuut is de goedkoopste beveiligingswinst die u kunt toevoegen aan een iframe dat inhoud toont die u niet zelf hebt geschreven: HTML van gebruikers, een advertentieplek, een preview van een gegenereerde pagina. Het lastige is weten welke tokens een bepaalde embed nodig heeft, want een ontbrekend token faalt meestal zonder melding. Het live frame hieronder voert echte tests uit, zodat u elke fout ziet in plaats van te gokken. Voor de basis van insluiten begint u met onze gids over HTML-iframes en video.

Veelgestelde vragen

Wat doet een leeg sandbox-attribuut?

Het past alle beperkingen tegelijk toe. Het ingesloten document kan geen scripts draaien, geen formulieren versturen, geen pop-ups of modals openen, het bovenste venster niet laten navigeren, de aanwijzer of oriëntatie niet vergrendelen, geen downloads starten, en het wordt behandeld alsof het van een unieke origin komt die nooit met iemand overeenkomt.

Waarom is allow-scripts met allow-same-origin gevaarlijk?

Als het ingesloten document op dezelfde origin staat als uw pagina, laten die twee tokens samen zijn script omhoog reiken en het sandbox-attribuut verwijderen, zodat het uiteindelijk niet veiliger is dan een gewoon iframe. De combinatie is prima voor inhoud van een echt andere origin, die uw pagina toch niet kan aanraken.

Mijn formulier in een sandbox doet niets als ik op verzenden druk. Waarom?

Zonder allow-forms wordt het formulier nog steeds weergegeven, maar verzenden activeert geen validatie en stuurt geen gegevens naar een server. Voeg allow-forms toe. Als het formulier ook afhankelijk is van cookies of opslag van zijn eigen site, heeft het ook allow-same-origin nodig.

Kan een iframe in een sandbox mijn hele pagina doorsturen?

Niet tenzij u allow-top-navigation toevoegt, of allow-top-navigation-by-user-activation, dat het alleen toestaat nadat iemand in het frame klikt. Als u beide weglaat, kan een embed uw pagina niet vervangen door een andere site.

Is sandbox genoeg om onbetrouwbare HTML veilig te tonen?

Het is de belangrijkste laag, niet de enige. Serveer onbetrouwbare inhoud vanaf een aparte origin of via srcdoc, houd allow-same-origin uit als scripts aanstaan, en voeg een Content-Security-Policy toe aan het ingesloten document als u bepaalt hoe het wordt geserveerd.

Hoe de ondoorzichtige origin alles verandert

Stille fouten zijn de norm

sandbox, allow en CSP doen verschillende dingen

Alle sandbox-tokens

Tokens worden gescheiden door spaties en zijn niet hoofdlettergevoelig. Alles wat niet in de lijst staat, blijft geblokkeerd.

Sandbox-tokens en wat elk ervan toestaat

Kopieerbare patronen

HTML van gebruikers tonen met scripts uit

De knop in het frame heeft een onclick-handler, maar met een lege sandbox draait die nooit.

Widget van derden op een andere origin

De widget draait zijn eigen script en verstuurt zijn formulier, en links kunnen echte tabbladen openen. Hij kan uw pagina niet doorsturen.

Dezelfde beperkingen als response-header verstuurd

Een server kan zijn eigen pagina sandboxen met CSP, wat ook geldt als de pagina direct wordt geopend in plaats van in een frame.

Schakel tokens om en test het frame

Het frame hieronder is een srcdoc-document. allow-same-origin wordt hier niet aangeboden, omdat een srcdoc-frame dan de origin van deze pagina zou delen, precies de combinatie waar de tips voor waarschuwen.

Scripts zijn geblokkeerd, dus niets in dit frame kan draaien.

Tokens

Huidig attribuut

Sandbox-testframe

Scripts zijn uitgevoerd. De origin van dit frame is: {v}

Formulier versturen

Pop-up openen

Melding tonen

Formulier verstuurd.

Formulier is niet verstuurd.

Pop-up geopend (en weer gesloten).

Pop-up geblokkeerd: window.open gaf null terug.

Melding is getoond.

Melding geblokkeerd: die keerde meteen terug zonder iets te tonen.

Hallo vanuit het frame in de sandbox

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap