Whitelist доменов
Настройте CORS для RUM-приложений, чтобы контролировать, какие домены могут отправлять данные.
Зачем нужен whitelist доменов?
Преимущества для безопасности:
- предотвращение неавторизованной отправки данных
- блокировка спама/поддельных сессий
- защита квоты API
- обеспечение целостности данных
Добавление доменов
Dashboard → Observability → Apps → [RUM App] → Settings → Domains
Точное совпадение
example.com
www.example.com
app.example.com
Wildcard для поддоменов
*.example.com # Matches: app.example.com, admin.example.com, etc.
Несколько доменов
Разделяйте переводом строки или запятой:
example.com
*.example.com
myapp.com
www.myapp.com
Окружения для разработки
Localhost
localhost
localhost:3000
localhost:8080
127.0.0.1
127.0.0.1:3000
Preview-деплои
Preview-URL для Vercel, Netlify:
*.vercel.app
*.netlify.app
preview-*.example.com
Настройка CORS
Эндпоинт RUM применяет CORS:
Предварительный запрос (OPTIONS)
Браузер отправляет:
OPTIONS /v1/ingest HTTP/1.1
Origin: https://example.com
Access-Control-Request-Method: POST
StatusRadar отвечает:
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 86400
Основной запрос (POST)
Если домен разрешён:
HTTP/1.1 202 Accepted
Access-Control-Allow-Origin: https://example.com
Если домен заблокирован:
HTTP/1.1 403 Forbidden
{"error": "Domain not whitelisted"}
Устранение неполадок
Ошибка CORS в консоли
Access to fetch at 'https://rum.statusradar.dev/v1/ingest'
from origin 'https://mysite.com' has been blocked by CORS policy
Решение:
- Добавьте
mysite.comв whitelist доменов - Подождите 1-2 минуты, пока очистится кэш
- Выполните жёсткое обновление (Ctrl+Shift+R)
Поддомен не работает
Проблема: добавлен example.com, но www.example.com заблокирован
Решение: добавьте оба ИЛИ используйте wildcard:
example.com
*.example.com
Localhost заблокирован
Решение: добавьте варианты localhost:
localhost
localhost:3000
127.0.0.1:3000
Меняющиеся preview-URL
Для динамических preview-URL (например, pr-123.vercel.app):
Решение: используйте wildcard:
*.vercel.app
*.netlify.app
Лучшие практики безопасности
✅ СТОИТ:
- добавлять в whitelist только подконтрольные вам домены
- использовать wildcard умеренно
- удалять неиспользуемые домены
- отслеживать неавторизованные попытки
❌ НЕ СТОИТ:
- добавлять в whitelist
*(все домены) - оставлять тестовые домены в продакшене
- публично делиться API-ключами
- игнорировать ошибки CORS
Кастомные домены (план Pro)
Используйте свой собственный домен для эндпоинта RUM:
- Settings → Custom Domain
- Добавьте CNAME-запись:
rum.yoursite.com → rum.statusradar.dev - Подтвердите владение
- Обновите эндпоинт SDK:
rum.configure({ endpoint: 'https://rum.yoursite.com/v1/ingest' });
Преимущества:
- обход блокировщиков рекламы (меньше вероятность блокировки)
- единство бренда
- собственный SSL-сертификат
Управление через API
Список доменов
curl -H "Authorization: Bearer $API_KEY" \
https://statusradar.dev/api/observability/apps/{app_id}/domains
Добавление домена
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-d '{"domain": "newsite.com"}' \
https://statusradar.dev/api/observability/apps/{app_id}/domains
Удаление домена
curl -X DELETE \
-H "Authorization: Bearer $API_KEY" \
https://statusradar.dev/api/observability/apps/{app_id}/domains/{domain_id}
Следующие шаги
- Создание приложений — первоначальная настройка
- Быстрый старт RUM — установка SDK
- Устранение неполадок — исправление проблем CORS
On this page
- Зачем нужен whitelist доменов?
- Добавление доменов
- Точное совпадение
- Wildcard для поддоменов
- Несколько доменов
- Окружения для разработки
- Localhost
- Preview-деплои
- Настройка CORS
- Предварительный запрос (OPTIONS)
- Основной запрос (POST)
- Устранение неполадок
- Ошибка CORS в консоли
- Поддомен не работает
- Localhost заблокирован
- Меняющиеся preview-URL
- Лучшие практики безопасности
- Кастомные домены (план Pro)
- Управление через API
- Список доменов
- Добавление домена
- Удаление домена
- Следующие шаги