flawopen.com/xss/Kotlin

● CWE-79 · Alta
Pesquisa · FlawOpen

Cross-Site Scripting in Kotlin

Learn how to fix Cross-Site Scripting (XSS) (CWE-79) in Kotlin. Side-by-side vulnerable vs secure code examples for Ktor HTML DSL and Thymeleaf template escaping.

💡 Explicação em Linguagem Simples (ELI5)

Imagine fixar um bilhete em um mural de avisos comunitário dizendo: 'Quem ler isto, entregue sua carteira para a pessoa ao lado'. Se os transeuntes obedecessem cegamente a qualquer bilhete no mural, qualquer um poderia roubar o dinheiro de todos.

Conceitos Centrais e Termos

Web Application Security
Componente de arquitetura principal afetado pelo CWE-79.
CWE-79
Classificação padrão Common Weakness Enumeration (CWE) para xss-kotlin.
Defense-in-Depth
Verificação de engenharia em múltiplas camadas e isolamento de limites em tempo de execução.

Fluxo de Ataque Passo a Paso

Step 1

Injeção de Payload de Script Não Confiável

O invasor insere elementos HTML ou JavaScript (ex: <script> ou <img onerror=...>) em campos de formulário ou URLs.

Step 2

Interpolação de Contexto Sem Escape

O aplicativo reflete a entrada no HTML ou a grava no banco sem codificação de entidades HTML apropriada.

Step 3

Interpretação e Execução no Navegador

Quando uma vítima visita a página, o navegador processa o texto inserido como código executável legítimo.

Step 4

Sequestro de Sessão e Comprometimento de Origem

O script executado na origem da vítima acessa cookies de autenticação, localStorage e forja requisições autorizadas.

Código-Fonte: Vulnerável vs. Seguro

✕ IMPLEMENTAÇÃO VULNERÁVEL
// untrusted HTML loaded with JS + native bridge
webView.settings.javaScriptEnabled = true
webView.addJavascriptInterface(
  NativeBridge(), "Android"
)
webView.loadData(untrustedHtml,
  "text/html", "UTF-8")
✓ PATCH SEGURO E ROBUSTO
// sanitize first; avoid exposing a bridge
val safeHtml = sanitize(untrustedHtml)
webView.settings.javaScriptEnabled = false
webView.loadData(safeHtml,
  "text/html", "UTF-8")

Lista de Verificação de Segurança para Engenharia

References