Wer versucht Nextcloud per iFrame einzubinden wird herausfinden, dass dies so einfach nicht möglich ist. Wie es doch funktioniert, zeige ich euch hier.
Ihr müsst lediglich eine Datei öffnen und dort einen Eintrag abändern. Diese Datei öffnen ihr mit:
nano /var/www/html/nextcloud/lib/private/legacy/response.php
Den Pfad zur Datei müsst ihr natürlich entsprechend anpassen.
Dort geht ihr in die Zeile 262 und kommentiert folgende Zeile aus:
header('X-Frame-Options: SAMEORIGIN'); // Disallow iFraming from other domains
Das Ergebnis sollte so aussehen:
public static function addSecurityHeaders() { /** * FIXME: Content Security Policy for legacy ownCloud components. This * can be removed once \OCP\AppFramework\Http\Response from the AppFramework * is used everywhere. * @see \OCP\AppFramework\Http\Response::getHeaders */ $policy = 'default-src \'self\'; ' . 'script-src \'self\' \'unsafe-eval\' \'nonce-'.\OC::$server->getContentSecurityPolicyNonceManager()->getNonce().'\'; ' . 'style-src \'self\' \'unsafe-inline\'; ' . 'frame-src *; ' . 'img-src * data: blob:; ' . 'font-src \'self\' data:; ' . 'media-src *; ' . 'connect-src *; ' . 'object-src \'none\'; ' . 'base-uri \'self\'; '; header('Content-Security-Policy:' . $policy); #header('X-Frame-Options: SAMEORIGIN'); // Disallow iFraming from other domains
Nun startet ihr noch euren Webserver neu. Bei nginx funktioniert das folgendermaßen:
service nginx restart
Letzte Artikel von Christian (Alle anzeigen)
- KeePass – Passwörter über eigene Cloud synchronisieren - 17. Februar 2021
- FRITZ!Box 6660 Cable mit Vodafone Cable nutzen - 16. Februar 2021
- Jitsi Docker – Lobby aktivieren - 16. Februar 2021
2 Kommentare
Hallo Christian,
ich habe die Zeile mit # auskommentiert und den Webserver (Apache) bereits mehrmals neu gestartet. Leider funktioniert das Anzeigen einer Ordnerfreigabe in einem iFrame dennoch nicht.
Hast Du vielleicht noch eine Idee dazu?
Die Datei „response.php“ heißt mittlerweile „OC_Response.php“.