Мой проект развертывает iframes на нескольких сторонних сайтах, которые все известны и зарегистрированы в приложении django.
В этих iframes пользователи могут инициировать некоторые события в форме ajax.Открыв сайт напрямую, все отлично работает.Если я открываю сторонний сайт, содержащий iframe, django выдает ошибку после запуска события ajax (403), говоря, что CSRF не удалось.
В форме, которую я использовал, {% csrf_token%}, которая установленав HTML.Однако он не устанавливает соответствующий файл cookie при вызове сайта через iframe (обнаружил оба в режиме проверки в браузере).
Я знаю, что могу использовать декоратор @csrf_exempt
, но это отключитcsrf-protection all-in-one, что я не хочу делать.
Итак, мои вопросы:
- Почему django не устанавливает файл cookie CSRF, когда вся страницазагружается через iframe?
- Можно ли заставить django установить cookie или можно только исключить известные URL-адреса из csrf?
- Есть ли способ, которого я не вижу?
Большое спасибо за ваше время!:)