Sanitize SQL queries

Abierto
#6,019 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
42/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
android, java, kotlin, sql, sqlite

Línea de trabajo

Localiza la instrumentación de sentry-jdbc y sentry-android-sqlite, incluidos los puntos de entrada SupportSQLiteOpenHelper y SQLiteDriver, y revisa SqlSanitizerWithSummary.jflex de OpenTelemetry Java como referencia previa. Se considera terminado cuando todas las sentencias producen descripciones estructurales de span seguras sin exponer literales ni comentarios, con cobertura para entradas malformadas, dialectos, secret-canary, fuzz/robustez y rendimiento.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Feature Java Platform: Java Spans
Problem Statement

Our JDBC and Android SQLite integrations currently use caller-provided SQL directly as the span description. If a customer interpolates values instead of using placeholders, literals and comments can contain PII, credentials, or other sensitive data and are sent to Sentry. The Java SDK has no SQL sanitizer today.

Solution Brainstorm

Introduce a shared internal SQL analyzer used by sentry-jdbc and sentry-android-sqlite.

Requirements:

  • Sanitize every statement, including prepared-statement text.
  • Replace literal values with placeholders while preserving SQL structure and existing parameter markers.
  • Remove or redact line and block comments.
  • Handle database dialect differences conservatively.
  • Never fall back to, attach, or log the original query if analysis fails; fail closed to safe structural metadata.
  • Use sanitized query text as the transaction-based span description.
  • Cover JDBC, SupportSQLiteOpenHelper, and SQLiteDriver instrumentation.
  • Add malformed-input, dialect, secret-canary, fuzz/robustness, and performance tests.

OpenTelemetry Java's Apache-2.0 JFlex SqlSanitizerWithSummary.jflex is strong prior art and can likely be adapted, but should not be vendored unchanged: OTel preserves comments, may skip sanitization for prepared statements, and preserves unknown fragments. Vendoring requires source attribution and a THIRD_PARTY_NOTICES.md entry.

Lenguaje dominante
Kotlin
Estrellas
1.4k
Forks
478
Merge medio
3 d 2 h
PR fusionados (30 d)
70

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de getsentry/sentry-java

Todos los issues de getsentry/sentry-java

Issues similares

Más issues de Kotlin

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.