2017-11-20 20 views
0

웹 응용 프로그램이 iframe 내부에 표시되는 회사 웹 포털을 사용하고 있습니다. 당신이 유일한 차이점은 대문자와 소문자에 있지만 URL이 동일 볼 수 있듯이Chrome에서 대문자 이름을 사용하는 콘텐츠 보안 정책

Refused to display ' https://rbmidde02.corp.company.com/identity/server/ ' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors https://RBMIDDE02.corp.company.com "

: 나는 크롬의 주요 응용 프로그램을 열려고하면 테스트 환경에서,이 오류가 발생합니다. 상단 바에있는 URL은요소의 src 속성과 같이 소문자이지만이 오류가 계속 발생합니다. 응용 프로그램이 "https://rbmidde02.corp.company.com/identity/server/"로 시작하는 URL을 식별 프로세스를 트리거하기 때문에

<iframe id="mainIframe" iframe-onload="iframeLoadedCallBack()" class="ng-scope ng-isolate-scope" src="https://rbmidde02.corp.company.com/apps/repricer/" style=""></iframe> 

조차 작동하지 않습니다 대문자로 iframe의 URL을 변경.

이 문제를 해결할 방법이 있습니까? 기업 사용자는 PC에서 Chrome을 사용하므로 파이어 폭스를 사용하는 것이 좋지는 않습니다.

답변

0

실제로이 문제가 발생하지 않았습니다 (사용자의 Chrome 브라우저가 최신 버전입니까?). 어떻게 든 2 차 하위 도메인 만 대문자를 존중할 가능성이 있습니다 (Chrome 63에서 대소 문자는 콘텐츠 보안 정책의 하위 도메인 및 도메인에서 무시됩니다). 나는 이것을 테스트 할 2 층 하위 도메인이 없었습니다.

도메인 이름이 대소 문자를 구분하지 않으므로이 방법을 사용하면 브라우저 오류가 발생하며 파이어 폭스가 아닙니다.

실제 수정하려면 iframe이 아닌 실제 콘텐츠 보안 정책 헤더 (또는 메타 태그)를 조정해야합니다. 즉, 오류 메시지가 표시되는 대문자를 수정해야합니다. CSP를 소문자로 수정하면로드해야합니다. 비록 이상한 엣지 케이스가 일어나지 않는 한 실제로로드해야합니다.