Iframe-Sandbox umgehen?

Lesezeit: 4 Minuten

Jemand hat meine Website mit einem iFrame erstellt

<iframe src="http://example.org" sandbox=""></iframe> 

Auf diese Weise verhindert das Sandbox-Attribut, dass meine Website den Iframe-Blocker verwendet. Und es kann leicht mit einem Iframe versehen werden.

Framebuster auf meiner Website:

if (window.top !== window.self) window.top.location.replace(window.self.location.href);

Gibt es einen programmatischen Weg umzuleiten zu meiner Website, wenn es mit Sandbox-Attribut verwendet wird, wenn es iframe ist?

Benutzer-Avatar
Sudipta Kumar Maiti

Iframe kann durch die geschützt werden X-Frame-Options Antwortheader, setzen Sie entweder X-Frame-Options value="DENY" oder X-Frame-Options value="SAMEORIGIN". Durch diese Response-Header-Einstellungen können Sie Ihre Website vor IFrames- oder Clickjack-Angriffen schützen.

Einmal X-Frame-Options Response-Header gesetzt ist, erhält der Browser eine Standardmeldung wie “Dieser Inhalt kann nicht in einem Frame angezeigt werden”.

  • Damit wird meine Seite nicht korrekt angezeigt? Aber da ich den Text fett formatiert habe, möchte ich, dass er auf meine Seite umgeleitet wird.

    – Benutzer198989

    30. Oktober 2015 um 15:05 Uhr

  • Der Browser empfängt kein richtiges HTML oder Skript, sobald der Antwortheader von X-Frame-Optionen entweder auf “deny” oder “sameorigin” gesetzt ist, sodass eine Umleitung über Skript nicht möglich ist.

    – Sudipta Kumar Maiti

    30. Oktober 2015 um 15:29 Uhr


Benutzer-Avatar
RichardB

Das Sandbox-Attribut schaltet unter anderem jegliches Javascript ab. Aus diesem Grund wird Ihr Framebuster nicht funktionieren, noch andere Javascript-Leute, die bereitgestellt wurden.

W3 Sprich von einer Sandbox:

  • Skripte sind innerhalb des Iframes nicht erlaubt/deaktiviert
  • Links zu anderen Browsing-Kontexten sind innerhalb des Iframes nicht erlaubt/deaktiviert

Ein Test zeigt, dass das Attribut auch Meta-Redirects und jeden Standard-Link, der aus dem Iframe ausbricht, deaktiviert.

Bei dieser Strenge würde es mich sehr wundern, wenn eine Weiterleitung möglich ist, da dies den Sinn der Sandbox zunichte machen würde.

Das Beste, was ich vorschlagen kann, wäre die Verwendung des noscript-Tags, um Benutzern, die die Seite in einem Sandbox-Iframe sehen, eine Nachricht anzuzeigen. Sie könnten das so gestalten, dass die Leute Ihre Inhalte nicht sehen können.

(Wenn nur eine Seite ein Problem darstellt, wäre das Blockieren mit htaccess wahrscheinlich ein besserer Ansatz.)

  • Eine andere Person, die mit sandbox=”allow-scripts” verwendet wird, sagt also, dass wir Javascript ausführen können. Was könnte der beste Ansatz sein, um auf die Haupt-iframe-Site umzuleiten?

    – Benutzer198989

    30. Oktober 2015 um 15:25 Uhr

  • Sie müssten Top-Navigation zulassen, damit das funktioniert. Allow-scripts erlauben auch kein Verlassen des Iframes.

    – RichardB

    30. Oktober 2015 um 15:32 Uhr

  • Wenn dies ebenfalls hinzugefügt wurde, wie könnte der Ansatz für die Umleitung aussehen?

    – Benutzer198989

    30. Oktober 2015 um 15:34 Uhr

  • Ich denke, Sie brauchen Fallbacks für jedes mögliche Ergebnis. 1. Umleitung – für normale Iframes 2. Zeigen Sie eine Nachricht mit Javascript an, um zu sagen, dass es nicht in einem Iframe angezeigt werden kann, und um Ihre Website direkt zu besuchen – für diejenigen mit Allow-Skripten, und 3. Die Noscript-Version für die vollständige Sandbox. 2 und 3 sind nicht gut für die Benutzererfahrung, aber ich kann mir wirklich keinen besseren Ansatz vorstellen, wenn Sie den Iframe nicht vollständig blockieren sollen.

    – RichardB

    30. Oktober 2015 um 15:36 Uhr

  • Ich glaube wirklich nicht, dass Sie 2 oder 3 umleiten können (naja, 2 scheint zu funktionieren, wenn Sie mit der rechten Maustaste klicken und der Benutzer angibt, in einem neuen Fenster zu öffnen). Alles, was Sie tun können, ist ihnen einen Link zum Kopieren und Einfügen zu geben.

    – RichardB

    30. Oktober 2015 um 15:37 Uhr

Ich denke, das Beste, was Sie tun können, ist, Ihre eigene Botschaft mit a zu zeigen target="top" Verknüpfung. Das gesamte Konzept des Sandbox-Attributs besteht darin, Weiterleitungen zu verbieten. Es gibt keine Möglichkeit, dies zu umgehen, und wenn Sie jemals einen Browser finden, werden die Hersteller wahrscheinlich einen Weg finden, ihn zu stoppen. Es ist eindeutig ihre Absicht.

So funktioniert das Web. Sie können nicht machen, was Sie wollen, wenn es um Browser geht.

Benutzer-Avatar
StefanOS

@SudiptaKumarMaitis Antwort von X-Frame-Options funktioniert, wird aber durch die Content Security Policy (CSP) Level 2 abgelöst – insbesondere durch die frame-ancestors Richtlinie.

Um das Framing vollständig zu verbieten (ähnlich wie X-Frame-Options: DENY), verwenden Sie diesen HTTP-Header:

Content-Security-Policy: frame-ancestors 'none';

1116380cookie-checkIframe-Sandbox umgehen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy