Skip to content

Commit 2398782

Browse files
committed
add a comment explaining the security measure
1 parent e929fed commit 2398782

File tree

1 file changed

+17
-0
lines changed
  • OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/display/impl

1 file changed

+17
-0
lines changed

OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/display/impl/WebViewManager.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,23 @@ internal class WebViewManager(
329329
webView!!.loadData(base64Message, "text/html; charset=utf-8", "base64")
330330
}
331331

332+
/**
333+
* Applies security hardening to the WebView to prevent common vulnerabilities.
334+
*
335+
* Security measures:
336+
* - JavaScript is enabled for IAM functionality but file access is completely blocked
337+
* - Prevents file:// URL access to mitigate local file inclusion attacks
338+
* - Blocks cross-origin access from file URLs to prevent data exfiltration
339+
* - Disables mixed content (HTTP resources on HTTPS pages) to prevent MITM attacks
340+
*
341+
* This configuration protects against:
342+
* 1. Malicious JavaScript accessing local device files
343+
* 2. Cross-site scripting (XSS) attacks via file:// protocol
344+
* 3. Man-in-the-middle attacks via downgraded HTTP content
345+
*
346+
* @SuppressLint is used because JavaScript is required for IAM functionality,
347+
* but we mitigate the risk through strict file access controls.
348+
*/
332349
@SuppressLint("SetJavaScriptEnabled")
333350
fun secureSetup(webView: WebView) =
334351
with(webView.settings) {

0 commit comments

Comments
 (0)