CORS на финансовых API

Если сервер отражает любой источник и шлёт куки, любой сайт, который посетит пользователь, прочитает его баланс и транзакции. Это риск CORS.

Когда CORS становится взломом

CORS опасен только когда сходится три вещи: сервер отражает источник атакующего, шлёт куки с ответом, а эндпоинт отдаёт пользовательские данные. Тогда любая открытая пользователем страница читает его авторизованные данные из чужого источника.

Звёздочка без кук обычно безобидна. Отражённый источник с куками на эндпоинте баланса — тихий вор данных. Разница важна, и сканеры ошибаются в обе стороны.

Почему исправление — это политика, а не строка

Исправление — белый список точных источников, куки только где нужно и никакого отражения. Но сложность в том, чтобы знать каждый источник, который легитимно зовёт API, — именно такую карту и даёт оценка.

Как мы это проверяем

Политика CORS, допускающая только доверенные источники, — и доказательство, что чужой сайт не прочитает данные ваших пользователей.

Вопросы

Каждая ли находка CORS — уязвимость?

Нет, многие безобидны. Проверяем каждую реальным кросс-доменным запросом и отчитываемся только о том, что реально утекает.

Нужен ли браузер для доказательства?

Страница в браузере — самое чистое доказательство, поэтому да — показываем чтение ровно так, как сделал бы сайт атакующего.

Ужесточите политику источников

Пришлите контур API — проверка CORS за 48 часов.
Заказать проверку CORS