iFrame 사용 막기 - X-Frame-Options 질문입니다.
본문
일반 사이트 운영중 구글 애드센스에서 내 코드가 다른 사이트에 사용되고 있다고 경고가 나오길래..
그 사이트를 클릭했더니... 내 사이트가 나오네요.
소스를 보니 iframe으로 내 사이트를 보여주고 있는데..
구글링을 해보니 아주~ 나쁜짓이 더군요.
그래서 방법으로 iframe 사용을 막아야 한다면서 아래 2가지를 추천 하는데..
질문1) 근본적으로 막는 방법이 아래 두가지 방법이 맞나요? 여러분들은 어떻게 대처하고 있나요?
질문2) 아래 2가지 소스를 모두 같이 사용해도 되나요?
- 첫번째 소스는 접근 자체를 차단하는 것 같고
- 두번째 소스는 원래 사이트로 새창으로 리다이렉트 하는 것 같습니다 (새창 열기 허용해줘야 함)
질문3) 아래 2가지 소스를 사용했을때 그누보드 이용에 제약이 있는것은 없나요?
감사합니다.
참고사이트
https://ziplineb2b.com/blog/how-to-prevent-a-website-from-being-loaded-in-an-iframe/
<?PHP header('X-Frame-Options: SAMEORIGIN'); ?>
<style id="antiClickjack">
body{display:none !important;}
</style>
<script language="javascript" type="text/javascript">
if (self === top) {
var antiClickjack = document.getElementById("antiClickjack");
antiClickjack.parentNode.removeChild(antiClickjack);
} else {
top.location = self.location;
}
</script>
다른 사이트에서 발견한 소스는 아래와 같은데.....
맞는 소스인지 검증 해주실 수 있나요?
위 소스를 1개로 합쳐놓은 것 같기두 하구요.. ^^
<script language="javascript" type="text/javascript">
var style = document.createElement('style');
style.type = "text/css";
style.id = "antiClickjack";
if ('cssText' in style)
style.cssText = "body{display:none !important;}";
else
style.innerHTML = "body{display:none !important;}";
if (self === top) {
var antiClickjack = document.getElementById("antiClickjack");
antiClickjack.parentNode.removeChild(antiClickjack);
} else {
top.location = self.location;
}
</script>
답변 1
https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Frame-Options
공식사이트의 내용을 참고하시면 도움이 되실런지요?
header()함수는
브라우저로 전송할 html문서의 헤더에 적용하는 php 함수입니다.
내용상 하자는 없어보입니다.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
이런것도 있습니다.