【发布时间】:2019-08-20 08:23:44
【问题描述】:
显然,我很难理解 Django (2.2.4) 设置对跨域环境中 CSRF 参数的影响。
正如我已经注意到的那样,如果我想将我的 Django 应用程序放入具有另一个域的网站的 iframe 中(例如 foo.com 上的 Django 应用程序和 bar.com 上的 iframe),我必须设置 SESSION_COOKIE_SAMESITE = None 以便在我的 Django 应用程序上发送表单。
但是,CSRF 参数是什么?经过一些试验,我注意到如果我还在 Django 设置中设置了CSRF_COOKIE_SAMESITE = None,我只能在 iframe 中发送 Django 表单。
但是CSRF_TRUSTED_ORIGINS 是干什么用的?如果我将 iframe 域(例如 bar.com)设置到列表 ['bar.com'] 而不是 CSRF_COOKIE_SAMESITE = None 我无法在 iframe 中的 Django 应用程序上发送表单。
谁能解释CSRF_TRUSTED_ORIGINS在什么情况下有什么作用?它是否只能在一个域和多个子域的环境中使用?
感谢任何提示!
【问题讨论】:
标签: django iframe cross-domain csrf