iac/apps
emelinda a67ab33e5d Django: DELETE падал в 403 — сессия без X-CSRFToken
SPA аутентифицируется сессионной кукой и не прикладывает X-CSRFToken, а
SessionAuthentication из DRF требует его на любом небезопасном методе:

  DELETE /api/core/videos/<id>/  ->  403
  {"detail": "CSRF Failed: CSRF token missing."}

Проверено на контуре, тремя запросами по несуществующему id (403 = отказ
авторизации, 404 = авторизация прошла):

  Bearer-токен                 -> 404   CSRF не при чём
  сессия + X-CSRFToken         -> 404   проходит
  сессия без X-CSRFToken       -> 403   ровно наша ошибка
  без авторизации              -> 401

То есть бэкенд исправен, ломается ровно сочетание "кука без заголовка".
С Bearer до SessionAuthentication дело не доходит: simple_jwt стоит в
DEFAULT_AUTHENTICATION_CLASSES раньше.

Ставим подкласс с пустым enforce_csrf на то же пятое место. Цена — с
cookie-запросов снимается защита от CSRF. Основной вектор закрыт самими
куками (sessionid и csrftoken выставляются с SameSite=Lax, браузер не
пошлёт их при кросс-сайтовом DELETE); остаётся щель в соседях по домену,
поскольку SameSite смотрит на site, а не на origin.

Импорт rest_framework в модуле настроек безопасен не всегда — обычно так
ловят AppRegistryNotReady. Здесь проверено запуском django.setup() внутри
работающего пода backend: setup проходит, строка пути к классу резолвится.
2026-08-10 13:25:06 +03:00
..
ams-sync Migrate various applications to manifest definitions and HelmRelease. Add them to the appropriate namespaces and update related configurations. 2026-07-16 14:01:21 +03:00
attachments ++ 2026-08-04 19:22:37 +05:00
auth-flow ++ 2026-07-31 12:55:03 +05:00
bim BIM: база bimapidb и обязательная переменная GOOGLE_APPLICATION_CREDENTIALS 2026-08-09 20:54:20 +03:00
cde ++ 2026-08-08 13:17:40 +05:00
checklists ++ 2026-08-04 14:07:53 +05:00
comparisons ++ 2026-07-31 15:12:16 +05:00
contracts ++ 2026-07-31 14:54:33 +05:00
control-interface ++ 2026-07-31 12:55:03 +05:00
cross-section ++ 2026-07-31 12:55:03 +05:00
django Django: DELETE падал в 403 — сессия без X-CSRFToken 2026-08-10 13:25:06 +03:00
document-link ++ 2026-08-04 13:29:50 +05:00
documentations ++ 2026-08-08 16:11:12 +05:00
drawings ++ 2026-07-31 15:12:16 +05:00
eav ++ 2026-08-02 01:40:23 +05:00
faas ++ 2026-07-31 12:55:03 +05:00
flows ++ 2026-08-09 14:52:30 +05:00
iam ++ 2026-08-04 18:33:39 +05:00
inspections ++ 2026-07-31 16:07:34 +05:00
issues ++ 2026-08-09 15:02:31 +05:00
mapper ++ 2026-07-31 15:12:16 +05:00
measurements Measurements пишет в общий бакет контура + перекат нагрузок в ansible 2026-08-09 11:58:06 +03:00
message-hub ++ 2026-08-07 12:52:30 +05:00
notes change charts 2026-07-30 20:10:37 +05:00
pm ++ 2026-08-07 13:03:50 +05:00
prescriptions ++ 2026-07-31 12:55:03 +05:00
processing Processing: один секрет на все файлы задач, добавлен django-auth.json 2026-08-10 01:11:53 +03:00
projects ++ 2026-07-31 12:55:03 +05:00
remarks ++ 2026-07-31 12:55:03 +05:00
resources ++ 2026-07-31 15:12:16 +05:00
reviews ++ 2026-08-08 14:10:20 +05:00
rfi ++ 2026-08-04 18:33:39 +05:00
stamp-verification ++ 2026-08-04 12:52:48 +05:00
subscriptions ++ 2026-07-31 15:12:16 +05:00
system-log ++ 2026-07-31 15:12:16 +05:00
transmittal ++ 2026-08-06 12:05:00 +05:00
workspaces Workspaces: зафиксирован выбор версии фронтенда по данным реестра 2026-08-09 01:05:26 +03:00