Rules / Kotlin
SHIELD-KOTLIN-006
JavaScript injection via WebView loadUrl/evaluateJavascript
What it detects
Concatenating or interpolating a variable into a WebView loadUrl('javascript:') or evaluateJavascript call enables JS injection.
How to fix
Never inject untrusted data into JavaScript; encode values or pass them via safe message channels.
Vulnerable — Shield flags thisWebJs.kt
fun greet(webView: WebView, name: String) {
webView.loadUrl("javascript:showGreeting('$name')")
}Fixed — scans cleanWebJs.kt
fun greet(webView: WebView, name: String) {
val message = WebMessage(name)
webView.postWebMessage(message, Uri.parse("https://example.com"))
}Both snippets are verified against the shipped scanner: the vulnerable one triggers SHIELD-KOTLIN-006, the fixed one does not.