Django CSP允许iframe from domain而无需为其他所有内容设置CSP



我需要允许另一个域嵌入我的网站在一个iframe。我可以使用Django CSP通过设置以下内容来实现这一点,假设example.com是将托管我网站iframe的域名。

CSP_FRAME_ANCESTORS = ("'self'", 'example.com')

我想Django操作,因为它开箱即用,这是没有CSP(纠正我,如果我错了)。在这种情况下,如何使用CSP配置实现这一点?

我目前有这个,但它不能捕获所有内容,我不确定它是否不像Django那样安全,或者相同。

CSP_DEFAULT_SRC = ("'self'", '*')
CSP_FRAME_ANCESTORS = ("'self'", 'example.com')

这和django默认的操作方式是一样的,还是我这样配置使我的应用程序不那么安全?

可以,通过使用:

CSP_DEFAULT_SRC = ("'self'", '*')
CSP_FRAME_ANCESTORS = ("'self'", 'example.com')

你使你的应用程序使用安全,因为许多未指定的指令将回退到default-src 'self' *。这意味着脚本/样式/iframes/对象/等可以从任何外部源加载。

据我所知,您使用Mozilla的django-csp包。它对所有指令都有默认值(斜体)。
如果你想保持默认的CSP设置的所有指令除了frame-ancestors1,你可以使用装饰器来改变CSP_FRAME_ANCESTORS的默认设置。

最新更新