06 85463975 info@gofke.nl

Probleem met de header X-frame-options

3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)
  • Auteur
    Berichten
  • #56548
    Milan
    Deelnemer

    Ik heb een probleem met de header X-frame-options.
    Mijn website heeft een aangepaste module van punchout. Het probleem is dat verschillende klanten de website via iframe weergeven, wanneer zij deze website gebruiken. (bijvoorbeeld de Ariba-marktplaats)

    Met Magento 1 was het probleem eenvoudig op te lossen met een ‘native optie’ in de backoffice.
    Met Magento 2 bestaat die optie niet meer en lukt het niet om de x-frame-options header te verwijderen.
    In het env.php-bestand wordt de header als volgt ingesteld: ‘x-frame-options’ => “SAMEORIGIN”.
    ‘Sameorigin’ is niet te gebruiken, omdat de klanten zich niet op hetzelfde domein bevinden. Na te proberen de regel in het bestand te verwijderen, voegt iets nog steeds de koptekst toe.
    In een andere website werd er aangegeven de waarde ‘*’ te gebruiken in plaats van ‘sameorigin’, maar dit veroorzaakt een probleem met het downloaden van bestanden.
    Hoe kan deze header volledig verwijderd worden?
    Vast bedankt voor de antwoorden.

    #56549
    Daan
    Deelnemer

    Ik heb een oplossing gevonden:
    1.Verwijder de x-frame-options uit de env.php
    2.Overschrijf het bestand \Magento\Framework\App\Response\HeaderProvider\XFrameOptions.php (vergeet de di.xml niet) en becommentarieer de inhoud van _construct
    class XFrameOptions extends \Magento\Framework\App\Response\HeaderProvider\XFrameOptions
    {
    /** Deployment config key for frontend x-frame-options header value */
    const DEPLOYMENT_CONFIG_X_FRAME_OPT = ‘x-frame-options’;

    /** Always send SAMEORIGIN in backend x-frame-options header */
    const BACKEND_X_FRAME_OPT = ‘SAMEORIGIN’;

    /**
    * x-frame-options Header name
    *
    * @var string
    */
    protected $headerName = Http::HEADER_X_FRAME_OPT;

    /**
    * x-frame-options header value
    *
    * @var string
    */
    protected $headerValue;

    /**
    * @param string $xFrameOpt
    */
    public function __construct($xFrameOpt = ‘SAMEORIGIN’)
    {
    //$this->headerValue = $xFrameOpt;
    }
    }

    Ik weet niet of dit de juiste manier is om dit op te lossen, maar het werkt wel.

    #56550
    Sandra Bakker
    Moderator

    In een iFrame kun je niet veel websites weergeven.
    De reden hiervoor is dat ze een “X-Frame-Options: SAMEORIGIN” antwoord header sturen. Deze optie voorkomt dat de browser iFrames weergeeft die niet op hetzelfde domein als de parent page worden gehost.
    Ik kreeg dezelfde foutmelding bij het weergeven van youtube links.
    Bijvoorbeeld: https://www.youtube.com/watch?v=8WkuChVeL0s
    Ik heb watch ? V= vervangen door embed / dus de geldige link zal zijn:
    https://youtube.com/watch?v=8WkuChVeL0s
    Het werkt goed.
    Probeer dezelfde regel in jouw geval toe te passen.

    SAMEORIGIN
    De pagina kan alleen worden weergegeven in een frame met dezelfde oorsprong als de pagina zelf. De specificatie laat het aan browser leveranciers over om te beslissen of deze optie van toepassing is op top level, parent level of the whole chain. Er wordt beweerd dat de optie niet erg nuttig is, tenzij alle voorouders van dezelfde oorsprong zijn.

3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)
  • Je moet ingelogd zijn om een antwoord op dit onderwerp te kunnen geven.