- Dit onderwerp bevat 2 reacties, 3 deelnemers, en is laatst geüpdatet op 3 jaren geleden door Sandra Bakker.
-
AuteurBerichten
-
april 11, 2021 om 1:33 am #56548MilanDeelnemer
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.april 11, 2021 om 1:35 am #56549DaanDeelnemerIk 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.
april 11, 2021 om 1:36 am #56550Sandra BakkerModeratorIn 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. -
AuteurBerichten
- Je moet ingelogd zijn om een antwoord op dit onderwerp te kunnen geven.