中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。 2.2 X-Frame-Options选项 X-Frame-Options 有三个值:
DENY :表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许 SAMEORIGIN :表示该页面可以在相同域名页面的 frame 中展示 ALLOW-FROM uri :表示该页面可以在指定来源的 frame 中展示 换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。 另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。
3.Django有关配置 3.1 Django默认的配置 首先,Django起禁止X-Frame-Options,使用默认设置了相关的配置。 在项目的setting.py页面中能够找到如下的设置:
MIDDLEWARE = [ ... 'django.middleware.clickjacking.XFrameOptionsMiddleware', ... ]
上面的内容显示,Django的项目中默认设置了XFrameOptionsMiddleware的中间件,这个设置将对于X-Frame-Options的配置设置成了DENY。 在Django 3.0中,X_FRAME_OPTIONS的默认设置从SAMEORIGIN 变成了DENY。
3.2 Django总体配置 想要总体设置项目的X-Frame-Options可以使用如下的代码:
X_FRAME_OPTIONS = 'SAMEORIGIN' 1 可以看出上面的是将X_FRAME_OPTIONS设置成SAMEORIGIN,但是这个改变了整个项目的设置,往往只有某些页面才需要这样的设置,因此下面介绍在单独的页面上设置这些内容。
3.3 指定的网页配置 直接看代码:
from django.http import HttpResponse from django.views.decorators.clickjacking import xframe_options_exempt from django.views.decorators.clickjacking import xframe_options_deny from django.views.decorators.clickjacking import xframe_options_sameorigin
@xframe_options_exempt def view_one(request): return HttpResponse("This page is safe to load in a frame on any site.")
@xframe_options_deny def view_two(request): return HttpResponse("I won't display in any frame!")
@xframe_options_sameorigin def view_three(request): return HttpResponse("Display in a frame if it's from the same origin as me.")
从上面的相应和名称能够很容易看出分别的含义,不在更详细描述。 装载来源:https://blog.csdn.net/u010403700/article/details/82112917
posted @
2020-05-15 19:19
lvph 阅读(
... ) 评论(
)
编辑
收藏