0

ein seltsames Problem Debuggen, stieß ich auf ein interessantes Verhalten:Warum prüft nur IE den X-Frame-Options-Header, wenn iFrame src eine Datei sendet?

auf einer Webseite, ich eine Datei herunterladen mit dem folgenden JavaScript-Code auslösen:

var iframe = document.createElement("iframe"); 
iframe.src = 'download.php'; 
document.body.appendChild(iframe); 

Das PHP-Script download.php sendet einen Text Datei mit dem X-Frame-Options-Header auf DENY:

<?php 
    header('X-Frame-Options: DENY'); 
    header('Content-type: text/plain'); 
    header('Content-Disposition: attachment; filename="text.txt"'); 
?> 
Text 

Chrome und Firefox die Datei herunterladen lassen, 11 IE zeigt ein iFrame mit einer Nachricht den Inhalt sagen, kann nicht eingebettet werden.

Was ist das korrekte Verhalten? Für mich macht es viel mehr Sinn, was IE macht.

Antwort

1

X-Frame-Options existiert, um Click-Jacking zu verhindern. Das Verhindern, dass eine Datei heruntergeladen wird, ist nicht das Ziel von X-Frame-Options, da eine solche Beschränkung leicht durch Öffnen eines Links in einem neuen Fenster umgangen werden kann.

Daher ist das Verhalten von Chrome und Firefox korrekt.

(Siehe auch https://crbug.com/331211 "The X-Frame-Options-Flags nicht das Herunterladen verhindern soll. Sie nur die Seite als Unterrahmen verhindert die Anzeige.")

Verwandte Themen