Sanitize SQL queries
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 42/100
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
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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de getsentry/sentry-java
-
Bug Java Platform: Java
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
getsentry/sentry-java#6138 · 1 comentario ·
-
Feature Java Platform: Java Spans
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
getsentry/sentry-java#5984 · 1 comentario ·
-
Android Task Traces
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
getsentry/sentry-java#5376 · 1 comentario ·
-
Android Docs Errors
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
getsentry/sentry-java#5375 · 1 comentario ·
-
Android good first issue Task User Feedbacks
Dificultad 1/5 1-3 horas Aptitud para principiantes 68/100
getsentry/sentry-java#5354 · 1 comentario ·
Todos los issues de getsentry/sentry-java
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
index-request triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Anthonyy232/Paperize#614 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
bitcoindevkit/bdk-ffi#1125 ·
-
🌑 nextgen
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
CCBlueX/LiquidBounce#9214 · 1 comentario ·