django로 만든 웹크롤링 사이트를 iframe 태그로 다른 html에 뿌려줘야하는 상황이 있었다.

 

그냥 iframe 태그로 뿌리니까 해당 사이트에서 연결이 거부되는 문제가 있었다.

아래 방법으로 해결하였다. 적용은 AWS EC2 등 다른 서버에서도 동일하다.


 

해결책은

 

from django.http import HttpResponse
from django.views.decorators.clickjacking import xframe_options_exempt

@xframe_options_exempt
def ok_to_load_in_a_frame(request):
    return HttpResponse("This page is safe to load in a frame on any site.")

이처럼 decorator를 사용하면 가장 간단히 해결할 수 있다.

 

다른 방법도 있는데 middleware를 사용하는 것이다.

setting.py에 아래 코드를 추가해주면 된다.

MIDDLEWARE = [
    ...
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ...
]

X_FRAME_OPTIONS = 'DENY'

 

 

참고문서 : https://docs.djangoproject.com/en/1.10/ref/clickjacking/#how-to-use-it

+ Recent posts