Django CSP允许来自域的iframe,而无需为其他所有内容设置CSP

2024-05-16 02:57:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要允许另一个域在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默认的操作方式相同,还是我通过这种方式配置应用程序而降低了它的安全性


Tags: djangoselfsrccomdefault内容网站example
1条回答
网友
1楼 · 发布于 2024-05-16 02:57:24

是的,通过使用:

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

您使应用程序使用CURE是因为许多未指定的指令将回退到default-src 'self' *。这意味着允许从任何外部源加载脚本/样式/iframe/objects/etc

据我所知,您使用的是Mozilla的django-csp包。它对所有指令都有一个default values(它们是斜体)。
如果希望保留除frame-ancestors一指令之外的所有指令的默认CSP设置,可以使用decorator更改CSP_FRAME_ANCESTORS默认设置

相关问题 更多 >