Contourner les options X-Frame-Options DENY dans les extensions Chrome via la manipulation de l'API du navigateur
De nombreux sites Web utilisent l'en-tête X-Frame-Options pour empêcher leur contenu ne soit pas intégré dans des iframes. Cela pose un défi pour les extensions Chrome comme Intab, qui s'appuient sur des iframes pour afficher le contenu lié en ligne.
Pour résoudre ce problème, les extensions peuvent exploiter l'API webRequest fournie par Chrome pour intercepter et modifier les requêtes HTTP. En ciblant les sous-frames (iframes) et en supprimant l'en-tête X-Frame-Options, les extensions peuvent contourner cette restriction.
Voici un extrait de code qui montre comment y parvenir :
chrome.webRequest.onHeadersReceived.addListener( function(info) { // Remove the X-Frame-Options header for (var i = info.responseHeaders.length - 1; i >= 0; --i) { if (info.responseHeaders[i].name.toLowerCase() === 'x-frame-options' || info.responseHeaders[i].name.toLowerCase() === 'frame-options') { info.responseHeaders.splice(i, 1); } } // Return the modified headers return { responseHeaders: info.responseHeaders }; }, { // Intercept all subframes urls: ['*://*/*'], types: ['sub_frame'] }, [ 'blocking', 'responseHeaders', // Extra headers are required for modern Chrome versions chrome.webRequest.OnHeadersReceivedOptions.EXTRA_HEADERS ].filter(Boolean) );
Pour activer cette fonctionnalité, le manifeste de l'extension doit déclarer les autorisations webRequest et webRequestBlocking, ainsi que les URL que l'extension interceptera (par exemple, ":///*" pour toutes les URL).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!