Validate script message origin (host:port)#4470
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR tightens the WKScriptMessageHandler allow-list by validating the message’s origin using host:port instead of only host, aiming to better restrict which web content can communicate with the native bridge.
Changes:
- Updated
SafeScriptMessageHandlerto include the origin port in allow/deny decisions. - Added port normalization for configured server URLs (defaulting http/https to 80/443 when the URL omits an explicit port).
- Updated unit tests to exercise host+port allow/deny behavior and renamed an origin-related test.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| Tests/App/WebView/SafeScriptMessageHandlerTests.swift | Updates tests to pass ports into shouldAllowMessage and adds a negative case for mismatched ports. |
| Sources/App/Frontend/ExternalMessageBus/SafeScriptMessageHandler.swift | Switches validation from host-only to host+port “origin key” and adds URL port normalization for configured server addresses. |
Sources/App/Frontend/ExternalMessageBus/SafeScriptMessageHandler.swift
Outdated
Show resolved
Hide resolved
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4470 +/- ##
=======================================
Coverage ? 42.33%
=======================================
Files ? 268
Lines ? 15758
Branches ? 0
=======================================
Hits ? 6671
Misses ? 9087
Partials ? 0 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Screenshots
Link to pull request in Documentation repository
Documentation: home-assistant/companion.home-assistant#
Any other notes