OneSignal предоставляет API для отправки уведомлений подписчикам.
Некоторые функции API требуют API-ключа для авторизации, но в большинстве из них отсутствует то же самое, поскольку авторизация не требуется, если отправка целевой аудитории с помощью PlayerID или ExternalID
Единственное, что требуется, - это идентификатор приложения, который должен быть открыт для работы OneSignal. По-видимому, если кто-то узнает PlayerID или ExternalID (используя в моем случае идентификатор id), он / она может отправить уведомление о спаме без какой-либо авторизации.
Я уже связался с их службой поддержки, и они говорят, что найти playerID / externalID сложно для хакера, и они еще не сталкивались с подобным инцидентом. Я считаю этот ответ неудовлетворительным.
Пример запроса API
curl --include \
--request POST \
--header "Content-Type: application/json; charset=utf-8" \
--data-binary "{\"app_id\": \"5eb5a37-b45-113-ac11-000c294062c\",
\"contents\": {\"en\": \"English Message\"},
\"include_player_ids\": [\"6392d91a-b206-4b7b-a620-cd68e32c3a76\",\"76ece62b-bcfe-468c-8a78-839aeaa8c5fa\",\"8e0f21fa-9a5a-4ae7-a9a6-ca1f24294b86\"]}" \
https://onesignal.com/api/v1/notifications
Ссылка: https://documentation.onesignal.com/reference#section-send-based-on-onesignal-playerids-create-notification
Я пытаюсь найти решение, чтобы предотвратить эту утечку.
Спасибо за ваше время