-
Notifications
You must be signed in to change notification settings - Fork 596
Reroute cloud through IPC channel #10285
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
||
protected handleResponse(response: pxt.editor.CloudProxyResponse) { | ||
if (this.pendingMessages[response.id]) { | ||
this.pendingMessages[response.id](response); |
Check failure
Code scanning / CodeQL
Unvalidated dynamic method call High
user-controlled
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 27 days ago
To fix the problem, we need to validate that response.id
is a valid key in the this.pendingMessages
object and that the corresponding value is a function before invoking it. This can be achieved by using the hasOwnProperty
method to check if the key exists and typeof
to check if the value is a function.
-
Copy modified line R353
@@ -352,3 +352,3 @@ | ||
protected handleResponse(response: pxt.editor.CloudProxyResponse) { | ||
if (this.pendingMessages[response.id]) { | ||
if (this.pendingMessages.hasOwnProperty(response.id) && typeof this.pendingMessages[response.id] === 'function') { | ||
this.pendingMessages[response.id](response); |
no need to review this just yet; mostly just opening this for visibility. adds an alternate auth client that proxies cloud requests to the parent frame. in the future, i'll swap out the frame implementation with one that talks over the IPC channel to minecraft