Frage

Ich entwickle eine Web-Seite, dass der Bedarf an Display, in einem Iframe, ein Bericht von einer anderen Firma Sharepoint-Server bedient. Sie sind mit dieser Ordnung.

Die Seite versuchen wir, in der iframe zu machen gibt uns X-Frame-Options: SAMEORIGIN, die den Browser verursacht (zumindest IE8) zu verweigern, den Inhalt in einem Rahmen zu machen.

Erstens ist dies etwas, das sie kontrollieren kann oder ist es etwas Sharepoint funktioniert nur standardmäßig? Wenn ich sie bitten, diese auszuschalten, könnten sie auch tun?

Zweitens kann ich etwas tun, um den Browser zu sagen, ignorieren dieses http-Header und macht nur den Rahmen?

War es hilfreich?

Lösung

Wenn das zweite Unternehmen ist gerne für Sie ihren Inhalt in einem IFrame zugreifen, dann müssen sie die Einschränkung auszuziehen - sie dies leicht recht tun können in der Config-IIS.

Es gibt nichts, was man tun kann und alles zu umgehen, das funktioniert sollte in einem Sicherheitsupdate schnell gepatcht bekommen. Sie können den Browser nicht sagen, nur den Rahmen zu übertragen, wenn der Source Content-Header sagt in Frames nicht erlaubt. Das wäre es einfacher für die Session-Hijacking machen.

Wenn der Inhalt GET nur Sie nicht post-Daten zurück, dann können Sie die Seite Server-Seite und Proxy die Inhalte ohne den Header, aber dann sollte jede Post zurück für ungültig erklärt bekommen.

Andere Tipps

UPDATE 2019: Sie können Bypass X-Frame-Options in einem <iframe> mit meinem X-Frame-Bypass Web Component. Sie erweitert das IFrame-Element von mehreren CORS Proxies und es wurde in der neuesten Firefox und Chrome.

getestet

Sie können es wie folgt:

  1. (Optional) Fügen Sie die Benutzerdefinierte Elemente mit Built-in erweitert polyfill für Safari:

    <script src="https://unpkg.com/@ungap/custom-elements-builtin"></script>
    
  2. Fügen Sie das X-Frame-Bypass JS-Modul:

    <script type="module" src="x-frame-bypass.js"></script>
    
  3. Legen Sie das X-Frame-Bypass Benutzerdefinierte Element:

    <iframe is="x-frame-bypass" src="https://example.org/"></iframe>
    

Die X-Frame-Options-Header ein Sicherheitsmerkmal auf Browserebene erzwungen ist.

Wenn Sie die Kontrolle über Ihre Nutzerbasis haben (IT für corp App DEPT), können Sie so etwas wie ein Greasemonkey-Skript versuchen könnten (wenn man a) deploy Grease über alle und b) das Skript in einem gemeinsamen Weg bereitstellen) .. .

Alternativ können Sie Proxy ihr Ergebnis. Erstellen Sie einen Endpunkt auf dem Server, und hat, dass Endpunkt eine Verbindung mit dem Zielendpunkt öffnen und einfach Trichter Verkehr rückwärts.

Wie für die zweite Frage - können Sie mit Fiddler Filter-Set Antwort X-Frame-Options Header manuell zu so etwas wie ALLOW-FROM * . Aber natürlich wird dieser Trick funktioniert nur für Sie -. Andere Benutzer nach wie vor nicht in der Lage sein iframe Inhalt zu sehen (wenn sie nicht das gleiche tun)

Ja Fiddler ist eine Option für mich:

  1. Öffnen Fiddler Menü> Regeln> Anpassen Regeln (dies effektiv bearbeitet CustomRules.js).
  2. Suchen Sie die Funktion OnBeforeResponse
  3. Fügen Sie die folgenden Zeilen:

    oSession.oResponse.headers.Remove("X-Frame-Options");
    oSession.oResponse.headers.Add("Access-Control-Allow-Origin", "*");
    
  4. Denken Sie daran, das Skript zu speichern!
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top