Ресурсы · 116
postMessage: проверять источник, окно и команду
Задайте контракт сообщений iframe или всплывающего окна, отклоняющий неожиданных отправителей и данные.
Обновлено · 2 min
Чего помогает достичь это руководство
- Описать участников и типы
- Проверить до любого действия
- Проверить навигацию и неожиданные сообщения
Быстрая проверка
- Контракт origin, окна, типа и минимальных данных.
- Цепочка проверки и отказ без бизнес-эффекта.
- Матрица отказов и очистка обработчиков.
Пошаговый метод
- 1
Описать участников и типы
Перечислите точные origin, ожидаемую ссылку на окно и типы сообщений. Для чувствительных данных задайте точный targetOrigin. Origin включает протокол, хост и порт; поиск подстроки в домене не проверяет отправителя.
Контракт origin, окна, типа и минимальных данных.
- 2
Проверить до любого действия
Сравните event.origin и для этой интеграции event.source с ожидаемым окном. Проверьте схему, допустимые значения и состояние операции. Обрабатывайте содержимое как данные без eval и вставки HTML. Разрешённый origin не заменяет авторизацию на сервере.
Цепочка проверки и отказ без бизнес-эффекта.
- 3
Проверить навигацию и неожиданные сообщения
Испытайте похожий домен, другой порт, другое окно того же origin, неверные поля и сообщения после закрытия. Удаляйте ненужные обработчики и завершайте обмены. Ответы направляйте только на заранее разрешённый origin даже после навигации.
Матрица отказов и очистка обработчиков.
Воспроизводимый приёмочный случай
Вымышленный пример: данные не описывают клиента или наблюдаемый результат.
Посмотреть данные случая
{
"allowed_origin": "https://widget.example",
"observed_origin": "https://widget.example",
"expected_window": "active_iframe",
"observed_window": "another_window",
"payload_schema_valid": true,
"expected": "reject_without_effect"
}Ожидаемое решение
Вымышленный пример: https://widget.example разрешён, но event.source — другое окно. Контракт требует активное окно iframe: отклоните сообщение без команды.
Ваш журнал приёмки
Запишите наблюдения по критериям руководства. Журнал не является сертификацией.
Автоматического сохранения нет. Экспортируйте до выхода.
Фильтры не ограничивают экспорт. Действия включают проблемы и непроверенные критерии.
Импорт заменит наблюдения после вашего подтверждения.
Показатели управления
| Показатель | Что он измеряет | Первое действие |
|---|---|---|
| Отклонённые неожиданные случаи | Негативные случаи без эффекта / выполненные негативные случаи | Записывать origin, окно и состояние |
| Завершённые разрешённые обмены | Завершённые ожидаемые / проверенные ожидаемые сценарии | Разделять получение и подтверждённый эффект |
Распространенные ошибки
Часто задаваемые вопросы
Достаточно ли проверки event.origin?
Нет. Проверьте окно, структуру и состояние. Сервер обязан проверить права для действия.
Официальные ссылки
Ссылки подтверждают метод. Адаптируйте проверки к вашему контексту; они не являются сертификацией. Оригинальные названия ссылок и исходные документы могут быть на другом языке.
Источники проверены .






