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
있습니까? 아마도 구문이 변경 되었습니까?
관심의 일부 링크 :
- x-frame-options에 대한 초안 rfc : http://tools.ietf.org/html/draft-gondrom-frame-options-01
- 2 개의 옵션 헤더 (sameorigin 또는 deny)로 헤더를 설명하는 developer.mozilla 기사. https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
- 모든 것을 시작한 msdn 블로그 : http://blogs.msdn.com/b/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx
- 세 가지 값에 대해 이야기하는 msdn 블로그 : 출처에서 허용 추가 http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx
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-from
Chrome 용 헤더를 추가하지 않으려면 브라우저 감지를 수행해야합니다 (콘솔에 오류 출력).
참고 URL : https://stackoverflow.com/questions/10658435/x-frame-options-allow-from-in-firefox-and-chrome
'Development Tip' 카테고리의 다른 글
Hibernate 객체를 직렬화 할 때 발생하는 이상한 Jackson 예외 (0) | 2020.11.29 |
---|---|
IOStream의 성능을 향상시키는 방법은 무엇입니까? (0) | 2020.11.28 |
.pem 파일을 읽고 개인 및 공개 키를 얻는 방법 (0) | 2020.11.28 |
Heroku에 로컬 MySQL 데이터베이스를 배포하는 방법 (0) | 2020.11.28 |
String.replaceAll ()이 Java 8에서 Java 9와 다르게 작동하는 이유는 무엇입니까? (0) | 2020.11.28 |