Возможна ли реализация PUSH-уведомлений без защищеного соединения?
Хочу реализовать PUSH-уведомления на локальном сайте. В консоли выводится сообщение об ошибке: "Разрешение на отправку уведомлений может быть предоставлено только при защищённом соединении."
В интернете во всех источниках, посвященных PUSH, пишут, что без HTTPS реализация уведомлений невозможна.
У меня два вопроса:
1.Почему реализация PUSH невозможна без защищенного соединения (не нашел информации о причинах)?
2.Нет ли какой-либо возможности обойти данное ограничение? Разрабатываемый мною сервис будет применяться локально, установка защищенного соединения не представляется возможной.
Ответы (1 шт):
Реализация PUSH невозможна без защищенного соединения. Потому что...
Перевод абзаца из документации PUSH API:
User agents MUST implement the Push API to only be available in a secure context. This provides better protection for the user against man-in-the-middle attacks intended to obtain push subscription data.
"Юзер-агенты ОБЯЗАНЫ сделать реализацию Push API доступной только в защищенной среде. Это обеспечивает защиту от атаки man-in-the-middle, ориентированной на получение данных о подписке на push-уведомления."
В общем, речь про защиту от спама (в первую очередь фишинга, когда мошеннические пуши будут выглядеть, как настоящие, ведь они как раз будут настоящими) и потенциального хищения персональных данных.
Возможно, стоит обратить внимание на самоподписные сертификаты. Потенциально полезный материал Mkcert: валидные HTTPS-сертификаты для localhost.