Sanitize SQL queries
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 42/100
Piste de recherche
Localisez l’instrumentation de sentry-jdbc et sentry-android-sqlite, notamment les points d’entrée SupportSQLiteOpenHelper et SQLiteDriver, et examinez SqlSanitizerWithSummary.jflex d’OpenTelemetry Java comme précédent. Le travail est terminé lorsque toutes les instructions produisent des descriptions structurelles de span sûres sans exposer de littéraux ni de commentaires, avec une couverture des entrées malformées, des dialectes, de secret-canary, du fuzz/de la robustesse et des performances.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Kotlin
- Étoiles
- 1.4k
- Forks
- 479
- Merge moyen
- 2 j 17 h
- PR mergées (30 j)
- 69
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de getsentry/sentry-java
-
Platform: Java
Difficulté 2/5 Une demi-journée Accessibilité débutants 76/100
getsentry/sentry-java#6161 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Bug Java Platform: Android Platform: Java
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
getsentry/sentry-java#6138 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Feature Java Platform: Java Spans
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
getsentry/sentry-java#5984 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Android Task Traces
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
getsentry/sentry-java#5376 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Android Docs Errors
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
getsentry/sentry-java#5375 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de getsentry/sentry-java
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
micronaut-projects/micronaut-core#13677 ·
Les mainteneurs répondent en général sous 1 jour
-
bug status: needs triage
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
LawnchairLauncher/lawnchair#7360 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Kotlin/kotlinx-kover#836 ·
-
Needs Triage
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
ankidroid/Anki-Android#22298 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
a:chore in:isolated-projects
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour