[JQUERY] 오류 SecurityError는 : 크로스 원점 프레임 액세스 원점으로 프레임을 차단
JQUERY오류 SecurityError는 : 크로스 원점 프레임 액세스 원점으로 프레임을 차단
해결법
-
1.당신이 그것을 할 수 있다면 당신은
당신이 그것을 할 수 있다면 당신은
주소의 다음과 같은 부분 중 하나 이상이 유지되지 않는 경우 원산지가 다른 것으로 간주됩니다 :
protocol://hostname:port/...
당신이 프레임에 액세스하려면 프로토콜, 호스트 이름 및 포트는 사용자의 도메인과 동일해야합니다.
참고 : Internet Explorer를 엄격하게이 규칙을 따르지로 알려져 있으며, 자세한 내용은 여기를 참조하십시오.
여기 http://www.example.com/home/index.html에서 다음 URL에 액세스하려고 무슨 일이 일어날 지입니다
URL RESULT http://www.example.com/home/other.html -> Success http://www.example.com/dir/inner/another.php -> Success http://www.example.com:80 -> Success (default port for HTTP) http://www.example.com:2251 -> Failure: different port http://data.example.com/dir/other.html -> Failure: different hostname https://www.example.com/home/index.html:80 -> Failure: different protocol ftp://www.example.com:21 -> Failure: different protocol & port https://google.com/search?q=james+bond -> Failure: different protocol, port & hostname
당신이 두 페이지를 소유하고있는 경우에도 다른 기원과 사이트의 내용에 접근하는 동일 출처 정책 블록 스크립트 불구하고, 당신은 같은 두 페이지 사이에 메시지를 보낼 수 window.postMessage과 상대적 메시지 이벤트를 사용하여이 문제를 해결할 수 있습니다 이:
이 방법은 또한 메인 페이지 리스너를 생성하고, 상기 프레임으로부터 응답을 수신하는 양 방향으로 적용 할 수있다. 동일한 논리는 또한 팝업으로 구현 될 수 있으며, 메인 페이지가 생성 기본적 새로운 창이 차이없이뿐만 아니라 (예를 들면 () window.open 사용).
이미이 주제에 대한 좋은 대답은 그래서이 가능 브라우저, 나는 상대 대답을 연결합니다, (나는 단지 그들이 인터넷 검색을 발견)이 있습니다. 그러나 동일 출처 정책을 해제하는 경우에만 브라우저에 영향을 미칠 것이라는 점을 기억하시기 바랍니다. 매우 안전하지 않은 그리고 당신은 당신이 (예를 들어, 개발 목적) 일을 정확히 모르는 경우 수행해서는 안됩니다 있도록 또한, 동일 출처 보안 설정을 비활성화 보조금와 브라우저 출처 간 리소스에 모든 웹 사이트에 액세스를 실행.
-
2.상보 마르코 Bonelli의 대답 : window.postMessage를 사용하는 프레임 / iframe을 사이에 상호 작용의 가장 좋은 현재의 방법으로, 모든 브라우저에서 지원
상보 마르코 Bonelli의 대답 : window.postMessage를 사용하는 프레임 / iframe을 사이에 상호 작용의 가장 좋은 현재의 방법으로, 모든 브라우저에서 지원
-
3.HTTP의 도메인의 웹 서버를 확인합니다. // WWW을 <도메인> .COM 구성을위한 X-프레임 - 옵션 그것은, 클릭 재킹 공격을 방지하기위한 보안 기능입니다
HTTP의 도메인의 웹 서버를 확인합니다. // WWW을 <도메인> .COM 구성을위한 X-프레임 - 옵션 그것은, 클릭 재킹 공격을 방지하기위한 보안 기능입니다
기술적으로 악 피해자 페이지의 소스와 iframe이 있습니다.
<html> <iframe src='victim_domain.com'/> <input id="username" type="text" style="display: none;/> <input id="password" type="text" style="display: none;/> <script> //some JS code that click jacking the user username and input from inside the iframe... <script/> <html>
당신은 웹 서버 요청을 방지하려는 경우 X-프레임 옵션을 추가 iframe이 내 렌더링 할
옵션은 다음과 같습니다
이것은 IIS 설정의 예입니다 :
<httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol>
웹 서버가 보안 기능을 활성화 한 경우는 예상대로 클라이언트 측에서 SecurityError의 원인이 될 수 있습니다.
-
4.나를 위해 내가 의미하는 2 웨이 핸드 셰이크를 구현하고 싶었 : - 부모 창은 iframe을 다음 빠르게로드 - iframe이는 준비되는 즉시 부모 창에 이야기해야 - 부모는 iframe이 메시지 및 재생을 수신 할 준비가되어
나를 위해 내가 의미하는 2 웨이 핸드 셰이크를 구현하고 싶었 : - 부모 창은 iframe을 다음 빠르게로드 - iframe이는 준비되는 즉시 부모 창에 이야기해야 - 부모는 iframe이 메시지 및 재생을 수신 할 준비가되어
이 코드를 사용하여 iframe이 흰색 라벨을 설정하는 데 사용됩니다 [CSS 사용자 지정 속성] 암호: iframe이
$(function() { window.onload = function() { // create listener function receiveMessage(e) { document.documentElement.style.setProperty('--header_bg', e.data.wl.header_bg); document.documentElement.style.setProperty('--header_text', e.data.wl.header_text); document.documentElement.style.setProperty('--button_bg', e.data.wl.button_bg); //alert(e.data.data.header_bg); } window.addEventListener('message', receiveMessage); // call parent parent.postMessage("GetWhiteLabel","*"); } });
부모의
$(function() { // create listener var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; eventer(messageEvent, function (e) { // replay to child (iframe) document.getElementById('wrapper-iframe').contentWindow.postMessage( { event_id: 'white_label_message', wl: { header_bg: $('#Header').css('background-color'), header_text: $('#Header .HoverMenu a').css('color'), button_bg: $('#Header .HoverMenu a').css('background-color') } }, '*' ); }, false); });
당연히 당신은 기원과 텍스트를 제한 할 수 있습니다,이 코드 쉬운 작업 함께 내가 도움이 될이 예제를 발견 : [도메인 간 메시징 PostMessage를]
-
5.나는이에 영향을 줄 수 자바 봄의 특정 구성을 추가하고 싶습니다.
나는이에 영향을 줄 수 자바 봄의 특정 구성을 추가하고 싶습니다.
웹 사이트 나 게이트웨이 응용 프로그램에서 contentSecurityPolicy 설정이 있습니다
봄에 당신은 WebSecurityConfigurerAdapter 서브 클래스의 구현을 찾을 수 있습니다
contentSecurityPolicy(" script-src 'self' [URLDomain]/scripts ; style-src 'self' [URLDomain]/styles; frame-src 'self' [URLDomain]/frameUrl...
...
.referrerPolicy(ReferrerPolicyHeaderWriter.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN)
여기에 안전 외부 콘텐츠를 정의하지 않은 경우 브라우저가 차단됩니다.
-
6.당신은 iframe의 내용에 대한 제어가있는 경우 - 인이 단지 아마존 기계 터크으로 크로스 기원 설정에서로드 된 경우, - 당신은이 문제를 회피 할 수 내부 HTML에 대한 속성.
당신은 iframe의 내용에 대한 제어가있는 경우 - 인이 단지 아마존 기계 터크으로 크로스 기원 설정에서로드 된 경우, - 당신은이 문제를 회피 할 수
내부 HTML에 대한 속성.예를 들어, 내부 HTML 위해 사용이 HTML 파라미터 (예 -이 정의하고 내부 몸체 요소의 부모 윈도우를 의미한다) :
-
7.포함 iframe을하려고하고 용감한와 사이트를 열 때 나는이 오류가 발생했습니다. 나는 문제의 사이트는 "방패 아래"로 변경하면 오류가 멀리 갔다. 분명히, 이것은 다른 용감한으로 사이트를 방문하는 사람이 같은 문제로 실행하기 때문에, 완전한 해결책이 아니다. 실제로 그것을 해결하기 위해 나는이 페이지에있는 다른 것들 중 하나를 수행해야합니다. 하지만 적어도 지금은 어디에 문제가 거짓말을 알고있다.
포함 iframe을하려고하고 용감한와 사이트를 열 때 나는이 오류가 발생했습니다. 나는 문제의 사이트는 "방패 아래"로 변경하면 오류가 멀리 갔다. 분명히, 이것은 다른 용감한으로 사이트를 방문하는 사람이 같은 문제로 실행하기 때문에, 완전한 해결책이 아니다. 실제로 그것을 해결하기 위해 나는이 페이지에있는 다른 것들 중 하나를 수행해야합니다. 하지만 적어도 지금은 어디에 문제가 거짓말을 알고있다.
-
8.chrome.exe의 --user-데이터 DIR = "C : // 크롬 dev에 세션"--disable-웹 보안
chrome.exe의 --user-데이터 DIR = "C : // 크롬 dev에 세션"--disable-웹 보안
from https://stackoverflow.com/questions/25098021/securityerror-blocked-a-frame-with-origin-from-accessing-a-cross-origin-frame by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 어떻게 마이크로 소프트 JSON 날짜를 포맷합니까? (0) | 2020.09.21 |
---|---|
[JQUERY] jQuery로 미리로드 이미지 (0) | 2020.09.21 |
[JQUERY] 합니까 ID는 전체 페이지에서 고유해야? (0) | 2020.09.21 |
[JQUERY] jQuery를 모바일 : 문서 준비 대 페이지 이벤트 (0) | 2020.09.21 |
[JQUERY] 동적으로 생성 된 요소에 작동하지 않는 이벤트를 클릭 [중복] (0) | 2020.09.21 |