Skip to content

Commit 4ce0284

Browse files
authored
Merge pull request #55 from MetaMask/fix/Issue-2115_iframe_spoofing
fix: Issue 2115 Handle messages only coming from the main frame to prevent spoofing from child iframes
2 parents 8bbe9cf + 5835a5c commit 4ce0284

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

android/src/main/java/com/reactnativecommunity/webview/RNCWebView.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,9 @@ protected void createRNCWebViewBridge(RNCWebView webView) {
285285
@Override
286286
public void onPostMessage(@NonNull WebView view, @NonNull WebMessageCompat message,
287287
@NonNull Uri sourceOrigin, boolean isMainFrame, @NonNull JavaScriptReplyProxy replyProxy) {
288-
RNCWebView.this.onMessage(message.getData(), sourceOrigin.toString());
288+
if (isMainFrame) {
289+
RNCWebView.this.onMessage(message.getData(), sourceOrigin.toString());
290+
}
289291
}
290292
};
291293
WebViewCompat.addWebMessageListener(

apple/RNCWebViewImpl.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,7 @@ - (void)userContentController:(WKUserContentController *)userContentController
789789
_disablePromptDuringLoading = NO;
790790
}
791791
} else if ([message.name isEqualToString:MessageHandlerName]) {
792-
if (_onMessage) {
792+
if (_onMessage && message.frameInfo.mainFrame) {
793793
NSMutableDictionary<NSString *, id> *event = [self baseEvent];
794794
[event addEntriesFromDictionary: @{@"data": message.body}];
795795
[event addEntriesFromDictionary: @{@"url": message.frameInfo.request.URL.absoluteString}];

0 commit comments

Comments
 (0)