Альтернатива CSRF в Django

Я запускаю приложение Django внутри iframe, который с php размещен на другом сервере. Все работает, кроме POST запроса, я получаю ошибку только в Firefox:

Request failed with status code 403  > CSRF verification failed > CSRF cookie not set

Ранее у меня было предупреждение Samesite ( Некоторые cookies неправильно используют рекомендуемый атрибут "SameSite"), которое я решил, разрешив Samesite secure в php скрипте:

PHP:

ini_set('session.cookie_httponly',1);
ini_set('session.use_only_cookies',1);
$cookieParams = session_get_cookie_params();
$cookieParams[samesite] = "None";
$cookieParams[secure] = true;
session_set_cookie_params($cookieParams);
session_start();

Предупреждение исчезло, но куки по-прежнему не передаются через iframe, но присутствуют в Chrome. Поэтому я думаю, что я могу пропустить куки и отправить их через Axios, потому что я использую Axios для отправки запроса:

JS:

axios.defaults.xsrfCookieName = 'csrftoken';
axios.defaults.xsrfHeaderName = "X-CSRFTOKEN";
const config =
      {
          headers: {
              'method':'POST',
              'accept': '*/*',
              'content-type': 'application/json;charset=UTF-8',
              withCredentials: true,
              'X-CSRFTOKEN': window.csrf_token,
              //csrfmiddlewaretoken: window.csrf_token
          }
      };
axios.post(url, datas, config).then((res) => {....

Settings.py:

CSRF_TRUSTED_ORIGINS = ['https://myPhpsite.com', 'myPhpsite.com']
CSRF_COOKIE_SAMESITE = 'None'
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_SAMESITE = 'None'
CORS_ALLOW_CREDENTIALS = True

После того, как я связал много вещей, я думаю отключить csrf, закомментировав 'django.middleware.csrf.CsrfViewMiddleware',. Если я сделаю это, будет ли это альтернативой csrf, чтобы получить защиту, как обеспечивает csrf?

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