Django:六、使用iframe标签内嵌页面报错;拒绝了我们的连接请求;because it set ‘X-Frame-Options‘ to ‘deny‘.

一、报错

使用标签内嵌页面时报错:

127.0.0.1 拒绝了我们的连接请求。

查看错误代码,发现:

Refused to display 'http://127.0.0.1:8000/' in a frame because it set 'X-Frame-Options' to 'deny'.

二、错误原因

由于x-frame-options设置了deny属性,导致了iframe失效,x-frame-options响应头是用来给浏览器设置允许一个页面可否在<frame>、<iframe>中展现的标记,有三个属性

deny:页面不允许在iframe中展现,相同域名嵌套也不允许
sameorigin:允许在相同域名嵌套展示
allow-from uri:允许指定源的iframe展示,即白名单

三、解决办法

在settings.py增加

X_FRAME_OPTIONS = 'SAMEORIGIN'

成功解决:

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Header always set X-Frame-Options SAMEORIGIN的含义是将X-Frame-Options协议头设置为SAMEORIGIN。这意味着该页面只能在相同的域名下的框架中加载,而不能在其他域名下的框架中加载。 这个设置可以防止点击劫持攻击,点击劫持攻击是一种黑客攻击技术,通过将恶意网站嵌入到一个透明的iframe中,诱使用户在不知情的情况下点击了恶意网站上的某些内容。通过设置X-Frame-Options为SAMEORIGIN,可以确保页面只能在相同域名下的框架中加载,从而防止点击劫持攻击。 范例:<<引用:通常,这个中间件会为任何开放的HttpResponse设置X-Frame-Options协议头为SAMEORIGIN。如果你想用DENY来替代它,要设置X_FRAME_OPTIONS: X_FRAME_OPTIONS = 'DENY' 。 引用:使用这个中间件时可能会有一些视图,你并不想为它设置X-Frame-Options协议头。对于这些情况,你可以使用一个视图装饰器来告诉中间件不要设置协议头: 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.") 为每个视图设置 X-Frame-Options 。>> Header always set X-Frame-Options SAMEORIGIN的含义是将X-Frame-Options协议头设置为SAMEORIGIN。这意味着该页面只能在相同的域名下的框架中加载,而不能在其他域名下的框架中加载。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值