Protect WebSocket endpoints from untrusted origin requests#134
Merged
krksgbr merged 1 commit intodividat:mainfrom Apr 22, 2024
Merged
Protect WebSocket endpoints from untrusted origin requests#134krksgbr merged 1 commit intodividat:mainfrom
krksgbr merged 1 commit intodividat:mainfrom
Conversation
We previously added support for adding Private Network Access and CORS headers only for a whitelist of permissible origins. This protects browser users running the driver locally against abuse from third-party websites, which could make HTTP requests to the driver at the loopback address. This commit extends this protection to WebSocket endpoints, for which browsers do not currently perform pre-flight requests. We therefore explicitly deny all requests from unknown origins. This change prepares for the driver gaining the capability of triggering firmware updates in connected devices.
krksgbr
approved these changes
Apr 22, 2024
Contributor
krksgbr
left a comment
There was a problem hiding this comment.
It looks good and works as expected.
How I tested:
- I ran the tests with a build from
mainand the unknown origin tests failed, as expected. - I also tested in the browser with the driver started with
./bin/dividat-driver --permissible-origin "http://orig.in"and all requests were rejected, as expected. - When the driver is started with no arguments, connections continue to work as before.
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.
We previously added support for adding Private Network Access and CORS headers only for a whitelist of permissible origins. This protects browser users running the driver locally against abuse from third-party websites, which could make HTTP requests to the driver at the loopback address.
This commit extends this protection to WebSocket endpoints, for which browsers do not currently perform pre-flight requests. We therefore explicitly deny all requests from unknown origins.
This change prepares for the driver gaining the capability of triggering firmware updates in connected devices (#127).
Checklist