[javascript] iframe에서 ‘X-Frame-Options’를 설정하는 방법은 무엇입니까?

이런 식으로 만들면 iframe:

var dialog = $('<div id="' + dialogId + '" align="center"><iframe id="' + frameId + '" src="' + url + '" width="100%" frameborder="0" height="'+frameHeightForIe8+'" data-ssotoken="' + token + '"></iframe></div>').dialog({

오류를 어떻게 해결할 수 있습니까?

'https://www.google.com.ua/?gws_rd=ssl'‘X-Frame-Options’가 ‘SAMEORIGIN’으로 설정되어 프레임 에 표시 되지 않습니다.

JavaScript로?



답변

당신은 설정할 수 없습니다 X-Frame-Optionsiframe. 리소스를 요청하는 도메인에서 설정 한 응답 헤더입니다 ( google.com.ua예제에서). SAMEORIGIN이 경우 헤더를 설정했습니다. 즉, iframe도메인 외부 에서 리소스를로드 할 수 없습니다 . 자세한 내용은 MDN 의 X-Frame-Options 응답 헤더 를 참조하십시오 .

여기에 Chrome 개발자 도구에 표시된 헤더를 빠르게 검사 X-Frame-Options하면 호스트에서 반환 된 값이 표시됩니다.

여기에 이미지 설명을 입력하십시오


답변

X-Frame-Options요청 된 도메인이 프레임 내에 표시 될 수 있는지 여부를 나타내는 상태 요청 에 대한 응답 에 포함 된 헤더 입니다. Javascript 또는 HTML과는 아무런 관련이 없으며 요청을 보낸 사람이 변경할 수 없습니다.

이 웹 사이트는이 헤더가에 표시되지 않도록 설정했습니다 iframe. 고객이이 행동을 막기 위해 할 수있는 일은 없습니다.

X-Frame-Options에 대한 추가 자료


답변

iframe의 내용을 보내는 서버를 제어하는 ​​경우 X-Frame-Options웹 서버에서 설정을 지정할 수 있습니다 .

아파치 설정

모든 페이지에 대해 X-Frame-Options 헤더를 보내려면 사이트 구성에 다음을 추가하십시오.

Header always append X-Frame-Options SAMEORIGIN

nginx 구성

Xgin-Frame-Options 헤더를 보내도록 nginx를 구성하려면 http, 서버 또는 위치 구성에 추가하십시오.

add_header X-Frame-Options SAMEORIGIN;

구성이 없습니다

이 헤더 옵션은 선택 사항이므로 옵션이 전혀 설정되지 않은 경우 다음 인스턴스 (예 : 방문자 브라우저 또는 프록시)에이를 구성 할 수있는 옵션이 제공됩니다.

출처 : https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options


답변

솔루션이 서버 측에서 실제로 언급되지 않았기 때문에 :

이와 같은 것을 설정해야합니다 (아파치의 예). 이것은 모든 것에서 허용하는 최상의 옵션은 아니지만 서버가 올바르게 작동하는 것을 본 후에는 쉽게 설정을 변경할 수 있습니다.

           Header set Access-Control-Allow-Origin "*"
           Header set X-Frame-Options "allow-from *"


답변

정말 … 나는 사용했다

 <system.webServer>
     <httpProtocol allowKeepAlive="true" >
       <customHeaders>
         <add name="X-Frame-Options" value="*" />
       </customHeaders>
     </httpProtocol>
 </system.webServer>


답변

아무것도 도움이되지 않고 해당 웹 사이트를 iframe에 표시하려면 프록시를 활용할 X 프레임 우회 구성 요소 사용을 고려하십시오 .


답변

X-Frame-Options HTTP 응답 헤더를 사용하여 브라우저 <frame>에서 <iframe>또는 페이지를 렌더링 할 수 있는지 여부를 나타낼 수 있습니다 <object>. 사이트는이를 사용하여 컨텐츠가 다른 사이트에 포함되지 않도록하여 클릭 재킹 공격을 방지 할 수 있습니다.

자세한 정보 :
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

이 문제에 대한 대체 솔루션이 있는데, PHP를 사용하여 설명하겠습니다.

iframe.php :

<iframe src="target_url.php" width="925" height="2400" frameborder="0" ></iframe>

target_url.php :

<?php
  echo file_get_contents("http://www.example.com");
?>