Django CSP Разрешить iframe из домена без необходимости устанавливать 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/объекты/etc разрешено загружать из любых внешних источников.

Как я понимаю, вы используете пакет django-csp от Mozilla. В нем есть значения по умолчанию для всех директив (они выделены курсивом).
Если вы хотите сохранить настройки CSP по умолчанию для всех директив, кроме frame-ancestors одной, вы можете использовать декоратор для изменения настроек CSP_FRAME_ANCESTORS по умолчанию.

Вернуться на верх