Nostr WoT
СреднийSecurityPermissionsAuthentication

Проверяйте, на каком сервере вы проходите аутентификацию

Управляйте разрешениями для сайта, аккаунта, точного URL и HTTP-метода, даже если API находится на другом домене.

·3 мин чтения
Проверяйте, на каком сервере вы проходите аутентификацию

Nostr WoT 0.8.7 разделяет доступ сайта к вашей идентичности и разрешение подтвердить её перед HTTP-сервисом. Для WebSocket есть отдельное руководство по реле.

API может находиться на другом домене

Условный сайт https://client.example может использовать https://api.client.example/session. Это обычная архитектура. Важно различать сайт, запрашивающий подпись, и сервис, который получит подтверждение.

Сохранённое HTTP-разрешение связано с аккаунтом, источником сайта, точным подписываемым URL и HTTP-методом, например POST. Учитывается и текст параметров запроса. Другие путь, порт, параметры, метод, сайт или аккаунт требуют отдельного согласия. Это относится и к API с тем же источником. Старые общие разрешения HTTP требуют повторного согласия; запреты остаются в силе.

Справочник клиентов и серверов носит информационный характер. Запись в нём не предоставляет доступ.

Подтверждение и отзыв

Диалог показывает сайт и назначение. Одобрить и Отклонить относятся к текущему запросу. Меню со стрелками позволяют запомнить решение для этой точной комбинации. Для HTTP нет разрешения сразу для всех сайтов.

Кнопка кода открывает полное событие. Групповое одобрение обычных подписей не включает аутентификацию. Таблица внизу раздела Разрешения относится к активному аккаунту и позволяет отозвать решения. Отзыв блокирует будущие подписи, но не возвращает уже отправленные подтверждения и не закрывает сессии сервера.

Что проверяет расширение

Источник определяется по данным документа от браузера, а не по выбранному страницей параметру RPC. Требуется проверенный основной фрейм. Iframe, в том числе с тем же источником, а также непрозрачные или противоречивые источники отклоняются. Нужен HTTPS, кроме явно разрешённых случаев разработки через loopback.

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

Операции встроенного кошелька

Создание или восстановление кошелька и управление Lightning-адресами используют LNbits-proxy v2. Обычный механизм подписания для сайтов отклоняет токены этих чувствительных маршрутов.

Подтверждение связывает URL, метод и хеш точных байтов тела. Задание сервера действует 60 секунд и используется один раз. Отдельный токен транзакции передаётся в собственном заголовке; подписывается только его хеш. Сервер проверяет подпись и все связи до атомарного использования задания. Запросы браузера также требуют разрешённого HTTPS-источника и соответствующего подписанного client-origin. Старые маршруты возвращают 426; клиент не переключается на прежний протокол.

Ограничения

NIP-98 требует проверки URL и метода на сервере. Расширение не может заставить любой внешний сервер проверять их правильно. Обладатель действительного подтверждения и необходимых токенов может переслать их по исходному назначению до первого использования.

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

См. протокол v2 и тесты.

Будьте в курсе

Получайте новости о выпущенных версиях Nostr WoT, новых функциях и интеграциях.

Вы будете получать рассылку на русском языке.

Мы сохраняем ваш адрес электронной почты и предпочитаемый язык для отправки рассылки.

Рассылки