Skip to content

Commit 5835a5c

Browse files
author
Tyschenko
committed
fix: Handle messages only coming from the main frame to prevent spoofing from child iframes
1 parent d0cccc5 commit 5835a5c

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
@@ -283,7 +283,9 @@ protected void createRNCWebViewBridge(RNCWebView webView) {
283283
@Override
284284
public void onPostMessage(@NonNull WebView view, @NonNull WebMessageCompat message,
285285
@NonNull Uri sourceOrigin, boolean isMainFrame, @NonNull JavaScriptReplyProxy replyProxy) {
286-
RNCWebView.this.onMessage(message.getData(), sourceOrigin.toString());
286+
if (isMainFrame) {
287+
RNCWebView.this.onMessage(message.getData(), sourceOrigin.toString());
288+
}
287289
}
288290
};
289291
WebViewCompat.addWebMessageListener(

apple/RNCWebViewImpl.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,7 @@ - (void)userContentController:(WKUserContentController *)userContentController
779779
_disablePromptDuringLoading = NO;
780780
}
781781
} else if ([message.name isEqualToString:MessageHandlerName]) {
782-
if (_onMessage) {
782+
if (_onMessage && message.frameInfo.mainFrame) {
783783
NSMutableDictionary<NSString *, id> *event = [self baseEvent];
784784
[event addEntriesFromDictionary: @{@"data": message.body}];
785785
[event addEntriesFromDictionary: @{@"url": message.frameInfo.request.URL.absoluteString}];

0 commit comments

Comments
 (0)