【问题标题】:xframe_options_exempt not working with django (Bitnami)xframe_options_exempt 不适用于 django (Bitnami)
【发布时间】:2018-04-05 03:56:18
【问题描述】:

所以我配置了一个网站,允许我将来自 Wave 区块链的数据显示到在 AWS EC2 实例上运行的 django 网站上。

我使用 bitnami 将 django 的堆栈映像安装到服务器上。

网页的工作方式如下所示 www.wavesico.tk/Project/get-ico/jacks-easter-eggs

Django 版本 = 1.11.6

我的 url 正确地指向我的视图(因为上面的 URL 有效)urls.py:

urlpatterns = [
   url(r'^admin/', admin.site.urls),
   url(r'^$', default_urlconf),
   url(r'^createICO/$', initialForm),
   url(r'^get-ico/([\w-]+)/$', crowdFund),     
]

在我的视图文件中,我已包含:

from django.views.decorators.clickjacking import xframe_options_exempt

@xframe_options_exempt
def crowdFund(request, company_name):
    c = WavesCompany.objects.get(name=company_name)

    data = tokens.getTokenData(c.holdersKey, c.tokenKey)

    return render(request, 'crowd_fund.html', data)

我还在我的设置文件中包含了中间件:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

但是,Chrome 仍然报告错误 'Refused to display 'https://www.wavesico.tk/Project/get-ico/jacks-easter-eggs/' in a frame 因为它将 'X-Frame-Options' 设置为 'sameorigin'

我尝试将“render()”函数更改为“HttpResponse”,但仍然没有成功。

谢谢大家, 杰克

【问题讨论】:

  • 您使用的是哪个 Django 版本?请向您展示完整的中间件设置。您确定该 url 正在由带有装饰器的视图处理吗?
  • 嗨 Alasdair,感谢您的回复,我已经编辑了我的问题。我使用 django 1.11.6。我确定 URL 的工作原理就像您尝试问题中的 url 它正确指向信息一样。但是,通过 IFrame 访问信息时,您会收到“sameorigin”错误再次感谢
  • 您发布的代码看起来没问题。仔细检查您是否已部署上述代码并重新启动服务器。
  • 我已经完成并且返回给 Chrome 的错误是'拒绝在框架中显示'wavesico.tk/Project/get-ico/jacks-easter-eggs',因为它将'X-Frame-Options'设置为'sameorigin''。这可能与我使用 bitnami 将 django 部署到服务器的事实有关吗?
  • This page 表明 bitnami Apache 配置可能正在设置 X-Frame-Options 标头。

标签: python django amazon-ec2 x-frame-options clickjacking


【解决方案1】:

正如 Alasdair 在 cmets 中所引用的,如果您使用 bitnami 堆栈映像来启动您的服务器,bitnami 将在彼此之上创建两个 apache 文档文件夹。

如此链接中所述https://community.bitnami.com/t/embed-page-with-iframe-using-ip-address/43130

您应该能够找到另一个将所有 x-frame 选项设置为 SAMEORIGIN 的 apache 配置文件,您必须将其更改为您的偏好以及实际的 bitnami 配置文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-02
    • 2018-03-21
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 2018-05-05
    • 1970-01-01
    相关资源
    最近更新 更多