-
CORS 우회 하기chrome extension 2022. 12. 12. 23:14
iframe 으로 구글이나 네이버 검색결과를 보여주려고 하면 CORS 에러가 난다.
Response Header 의 x-frame-options 를 변경해 무력화(?) 할 수 있다.
Manifest V3
manifest.json
{ "declarative_net_request": { "rule_resources": [ { "id": "ruleset_1", "enabled": true, "path": "rules.json" } ] }, "permissions": [ "declarativeNetRequest" ], "host_permissions": [ "*://*.google.com/*", "*://*.naver.com/*" ], "manifest_version": 3 }
참고: https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest/
rules.json
[ { "id": 1, "priority": 1, "action": { "type": "modifyHeaders", "responseHeaders": [ { "header": "x-frame-options", "operation": "remove" }, { "header": "X-FRAME-OPTIONS", "operation": "remove" } ] }, "condition": { "urlFilter": "search.naver.com", "resourceTypes": ["sub_frame", "image"] } }, { "id": 2, "priority": 1, "action": { "type": "modifyHeaders", "responseHeaders": [ { "header": "x-frame-options", "operation": "remove" }, { "header": "X-FRAME-OPTIONS", "operation": "remove" } ] }, "condition": { "urlFilter": "www.google.com", "resourceTypes": ["sub_frame", "image"] } } ]
Manifest V2
background.js
chrome.webRequest.onHeadersReceived.addListener( function (details) { return { responseHeaders: details .responseHeaders .filter(header => header.name.toLowerCase() !== 'x-frame-options') } }, { urls: ["<all_urls>"], types: ['sub_frame'] }, ["blocking", "responseHeaders", "extraHeaders"] );
'chrome extension' 카테고리의 다른 글
background.js 에서 third-party libaray 사용하기(in Manifest V3) (0) 2023.02.25 새탭을 만든 후 동적 HTML 로 내용 채우기 (0) 2022.12.12 content script 에서 iframe 안의 내용을 접근하기 (0) 2022.12.12