clickJacking

现代浏览器通过x-frame-options http头部来判断资源是否可在frame或iframe中加载。

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/

django可以设置一个中间件,这样保护所有的页面。
django可以使用装饰器来防护一些视图。

MIDDLEWARE_CLASSES = (
...
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
...
)

默认设置为同源的SAMEORIGIN,可以在设置中指定:

X_FRAME_OPTIONS = 'DENY'

对一些视图不保护:

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.")

from django.views.decorators.clickjacking import xframe_options_deny
from django.views.decorators.clickjacking import xframe_options_sameorigin

但是,老式的浏览器不支持(可以考虑js中判断)。

你可能感兴趣的:(clickJacking)