强制设置 X-Frame-Options Django

问题描述 投票:0回答:2

我尝试了不同的方法在 Django-server 响应中将 X-Frame-Options 设置为 'SAMEORIGIN',但这没有帮助:

  1. 我从settings.py中的中间件中删除了XFrame包。
  2. 我将
    X_FRAME_OPTIONS='SAMEORIGIN'
    放入 settings.py
  3. 我将 'X-Frame-Options' 添加到了 my view 中具有相同值的响应对象,其中我想使用
    <iframe>
  4. 我尝试将
    @xframe_options_sameorigin
    装饰器添加到 我的视图
  5. 我还更改了/etc/apache2/apache2.conf,将
    Header always set X-Frame-Options "SAMEORIGIN"
    放入其中。

然后我尝试在执行所有操作后重新启动 apache2 服务,但结果始终相同:

X-Frame-Options setted as 'DENY'

我的Django版本是2.2.4。

django x-frame-options
2个回答
0
投票

抱歉,其中一些方法确实有效。浏览器页面的更新第一次不起作用,但几分钟后就起作用了。全部完成,谢谢。


0
投票

根据官方文档,要为站点中的所有响应设置相同的 X-Frame-Options 值,请将

'django.middleware.clickjacking.XFrameOptionsMiddleware'
放入中间件:

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

然后将

X_FRAME_OPTIONS
设置为
settings.py

在 Django 2 及更低版本中,这是默认行为:(参见文档

X_FRAME_OPTIONS = 'SAMEORIGIN'

而在 Django 3 及以上版本中则相反(参见文档

X_FRAME_OPTIONS = 'DENY'

设置完成后,请确保重新启动服务器。

© www.soinside.com 2019 - 2024. All rights reserved.