0

Nextcloud: in iframe einbinden

Bindet man Nextcloud auf einer anderen Webseite in einen iframe ein, so verhindern moderne Browser die Anzeige (Stichwort Same-origin policy). Es sei denn, die einzubindende Seite lässt dies explizit zu.

Bei Nextcloud 25 gibt es dazu leider keine Konfigurationsmöglichkeit, man muss also selber manuell tätig werden.
Hinweis: Die Dateien, die man anpassen muss, können beim nächsten Update wieder überschrieben werden, so dass man die Anpassung manuell wiederholen muss.


Als erstes muss man im HTTP-Header erlauben, dass sich Nextcloud einbinden lässt. Dazu in der Datei

nextcloud/lib/private/legacy/OC_Response.php
in der Funktion addSecurityHeaders() die Zeile 100 auskommentieren:
// header('X-Frame-Options: SAMEORIGIN');  // Disallow iFraming from other domains


Außerdem muss die Domain/ IP-Adresse der anderen Webseite in Nextcloud noch erlaubt werden.
Dazu in Datei

nextcloud/lib/public/AppFramework/Http/ContentSecurityPolicy.php
die zu erlaubende Domain in Zeile 92 in das Array $allowedFrameAncestors eintragen:
/** @var array Domains which can embed this Nextcloud instance */
protected $allowedFrameAncestors = [
    '\'self\'',
    '192.168.1.2:8080',
];
Wichtig war bei mir, dass ich den Port meiner IP-Adresse noch mit eingetragen hab.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert