В соответствии с this article on MDN использование postMessage для передачи сообщений с и из сценария содержимого в chrome не является безопасным, поскольку не может правильно определить свойство источника и что его целевому объекту сложно безопасно переходить на потенциально вредоносный сайт. Это все еще так. Существуют ли другие способы подтверждения источника полученного сообщения и только для отправки сообщений только на конкретный сценарий контента? Или есть альтернативы использованию сценариев контента вообще?Безопасность на postMessage в/из скрипта содержимого расширенного Chrome? Возможные альтернативы?
ответ
«Хром» в статье о MDN не относится к «Google Chrome», а к расширению кода, который работает с привилегиями Chrome (look here для других значений «chrome» в Firefox).
В Google Chrome/Chromium, скрипты содержания работать в different environment, чем веб-страницы (это означает, что window
в сценарии контента отличается от window
на веб-странице).
Однако при отправке сообщения из сценария содержимого на страницу event.source
будет идентичным window
. Итак, чтобы убедиться, что сообщение действительно отправлено из сценария (контента) на той же странице, вы можете использовать if (event.source === window) { ... }
.
Если вы хотите отправить сообщение другому сценарию содержания (в той же вкладке), то у вас есть два варианта:
- Если кадры расположены на различного происхождения, или если скрипты содержания расположены в разных вкладках, вам необходимо отправить сообщение на фоновое изображение, которое, в свою очередь, передает сообщение целевому контенту контента с использованием API-интерфейсов Chrome extension message passing.
- Если связывающие фреймы расположены в одном и том же источнике, их переменные могут быть совместно использованы без использования API-интерфейса передачи сообщений. Обратитесь к их
window
объектам с использованиемtop
,parent
,<HTMLIFrameElement>.contentWindow
,frames[index]
и т.д.
Другим (хак) способом получить сообщение от сценария один контента к другому через chrome.storage
API. На принимающей стороне свяжите событие chrome.storage.onChanged
. Чтобы отправить сообщение, используйте chrome.storage.local.set
. Не забудьте удалить пару ключ-значение, как только вы получили сообщение (нет).
- 1. Как я могу содержать стили скрипта содержимого расширенного Chrome?
- 2. Chrome всплывающее скрипта содержимого
- 3. Скрипты содержимого расширенного содержимого Chrome, вставляемые в изображения
- 4. Политика и разрешения безопасности содержимого расширенного содержимого Chrome
- 5. определить, был ли внедрен скрипт содержимого расширенного содержимого Chrome/скрипт содержимого. Guard:
- 6. Возможные альтернативы PHP header_remove
- 7. Chrome ServiceWorker postMessage
- 8. Создание расширенного расширения Chrome Chrome
- 9. Синхронизация фоновой страницы Chrome и скрипта содержимого
- 10. Расширение Chrome: отладка содержимого скрипта перед упаковкой
- 11. Динамическая загрузка скрипта содержимого (расширение chrome)
- 12. Возможные альтернативы кучу суб Запросы
- 13. Скрипт содержимого расширенного расширения Chrome: нажмите() и результаты async
- 14. Очередь сообщений расширенного расширения Chrome
- 15. Возможные альтернативы плагину vagrant-vCenter?
- 16. Расширение Chrome - загрузка скрипта содержимого на обновления URL-адреса
- 17. CKEditor Отключить фильтр расширенного содержимого
- 18. POSIX расширенного определение реентерабельности покрытия безопасность потоки
- 19. Обновление страницы расширенного расширения Chrome
- 20. Chrome Extension Войти Безопасность
- 21. Стратегия обновления кода расширенного кода Chrome
- 22. Оптимизация линий рисования, возможные альтернативы CAShapeLayer
- 23. Получать postMessage из chrome новое расширение вкладки
- 24. Даунсайд этой макро конструкции и возможные альтернативы
- 25. GWT Window Manager (GWM). Безопасность? Надежность? Альтернативы?
- 26. Повторная инъекция скрипта содержимого расширений Chrome после обновления или установки
- 27. Сделать URL-адрес совпадений для скрипта содержимого Chrome Конфигурируемый
- 28. Chrome: получить URL-адрес активного скрипта сценария содержимого
- 29. Доступ к iframes из расширения для скрипта содержимого Chrome
- 30. Расширение Chrome: sendRequest для скрипта содержимого внутри внутренних фреймов?