Mediumcorssecurity
Что такое CORF/CORS?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
CORS (Cross-Origin Resource Sharing) — механизм браузера для контроля cross-origin запросов. Same-origin policy: браузер запрещает JS читать ответы с других доменов. CORS через response headers.
# FastAPI
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=['https://example.com'],
allow_credentials=True,
allow_methods=['*'],
allow_headers=['*'],
)Headers:
Access-Control-Allow-Origin— какой origin разрешён;Access-Control-Allow-Methods(GET, POST, ...),Allow-Headers;Access-Control-Allow-Credentials(cookies).
Preflight request: для не-simple requests браузер сначала отправляет OPTIONS с Request-*, сервер отвечает Allow-*. Без правильного CORS — браузер блокирует, ошибка в JS console.
В Django: django-cors-headers. CSRF — другой механизм, для форм (не API).
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.