Development Tip

X-Frame-Options : firefox 및 chrome의 ALLOW-FROM

yourdevel 2020. 11. 28. 12:36
반응형

X-Frame-Options : firefox 및 chrome의 ALLOW-FROM


X-Frame-Options이 기사에 따라 파트너 사이트가 내 고용주의 사이트를 iframe으로 래핑 할 수 있도록 "통과"를 구현하고 있습니다. http://blogs.msdn.com/b/ieinternals/archive/2010/03/30 /combating-clickjacking-with-x-frame-options.aspx

(게시 할 URL 분할)

간단히 말해서, 파트너 페이지에는 도메인에 대한 URL이있는 iframe이 있습니다. 도메인의 모든 페이지에 &@mykey=topleveldomain.com대해 페이지의 최상위 도메인이 무엇인지 알려주 는 특수 url 인수를 추가합니다 .

우리의 필터는 URL에서 파트너 TLD (제공된 경우)를 선택하고 허용 목록에 대해 유효성을 검사합니다. 목록에있는 경우 X-Frame-Options이 포함 된 헤더를 제공 ALLOW-FROM topleveldomain.com하고 향후 클릭을 위해 쿠키를 추가합니다. 화이트리스트에없는 경우 SAMEORIGIN또는 DENY.

문제는 ALLOW-FROM domain최신 Firefox 및 Google Chrome에서 전체적으로 결과를 전송 하지 않는 것처럼 보입니다 . 적어도 IE8은 ALLOW-FROM.

이 페이지를 확인하십시오 : http://www.enhanceie.com/test/clickjack . "콘텐츠를 표시해야하는"다섯 번째 (5 개) 상자 바로 뒤에는 콘텐츠를 표시해서는 안되는 상자가 있습니다. 이 경우, iframe이있는 페이지가 보내는 X-Frame-Options: ALLOW-FROM http://www.debugtheweb.com보다 확실히 다른 TLD를 http://www.enhanceie.com. 그러나 프레임에는 여전히 콘텐츠가 표시됩니다.

관련 (데스크톱) 브라우저에서 X-Frame-Options실제로 구현 되는지 여부에 대한 통찰력 ALLOW-FROM있습니까? 아마도 구문이 변경 되었습니까?

관심의 일부 링크 :


ALLOW-FROM은 Chrome 또는 Safari에서 지원되지 않습니다. MDN 문서 : https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options 참조

이미 사용자 지정 헤더를 만들고 올바른 데이터와 함께 전송하는 작업을 수행하고 있습니다. 유효한 파트너에서 보낸 것이 감지되면 헤더를 제외하고 다른 모든 요청에 ​​DENY를 추가 할 수 있습니까? 이미 동적으로 논리를 구축하고 있는데 AllowFrom의 이점이 보이지 않습니까?


나는이 질문을 게시했지만 피드백을 보지 못했습니다 (몇 달 후에 온 것 같습니다 :).

Kinlan이 언급했듯이 ALLOW-FROM은 모든 브라우저에서 X-Frame-Options 값으로 지원되지 않습니다.

해결책은 브라우저 유형에 따라 분기하는 것이 었습니다. IE의 경우 X-Frame-Options를 제공 하세요. 다른 모든 사용자에게는 X-Content-Security-Policy를 제공하십시오 .

이것이 도움이되기를 바라며 루프를 닫는 데 너무 오래 걸린 것에 대해 죄송합니다!


Chrome의 경우

response.AppendHeader("X-Frame-Options", "ALLOW-FROM " + host);

당신은 추가해야합니다 Content-Security-Policy

string selfAuth = System.Web.HttpContext.Current.Request.Url.Authority;
string refAuth = System.Web.HttpContext.Current.Request.UrlReferrer.Authority;
response.AppendHeader("Content-Security-Policy", "default-src 'self' 'unsafe-inline' 'unsafe-eval' data: *.msecnd.net vortex.data.microsoft.com " + selfAuth + " " + refAuth);

HTTP 응답 헤더에.
이것은 refAuth가 허용되는지 여부를 서버에서 확인했다고 가정합니다.
또한 allow-fromChrome 용 헤더를 추가하지 않으려면 브라우저 감지를 수행해야합니다 (콘솔에 오류 출력).

자세한 내용은 여기 내 대답을 참조 하십시오.

참고 URL : https://stackoverflow.com/questions/10658435/x-frame-options-allow-from-in-firefox-and-chrome

반응형