task_execute: lotto e seriale in un letterale JS con autoescape HTML → dato alterato nel DB #32

Closed
opened 2026-09-21 20:14:52 +00:00 by Adriano · 3 comments
Owner

GRAVITÀ: media
FILE: src/frontend/flask_app/templates/measure/task_execute.html:929-930
COSA: lotNumber: '{{ lot_number or '' }}' dentro <script>: &→&amp;, '→&#39;, e il valore alterato è inviato a ogni misura e a production/start. Backslash non escapato.
INPUT: lotto A&B-12 salvato come A&amp;B-12. Lotto LOT\ → SyntaxError, la pagina di misura non parte.
VERIFICATO: righe 929-930 lette; alla riga 60 gli altri dati usano |tojson.

ORIGINE: revisione fable del 21/09/2026 su ramo V3.0.0, commit 8cc5e82. Documento completo: _output/2026-09-21-TieMeasureFlow-revisione.md su Wasabi.

GRAVITÀ: media FILE: src/frontend/flask_app/templates/measure/task_execute.html:929-930 COSA: `lotNumber: '{{ lot_number or '' }}'` dentro `<script>`: `&`→`&amp;`, `'`→`&#39;`, e il valore alterato è inviato a ogni misura e a `production/start`. Backslash non escapato. INPUT: lotto `A&B-12` salvato come `A&amp;B-12`. Lotto `LOT\` → SyntaxError, la pagina di misura non parte. VERIFICATO: righe 929-930 lette; alla riga 60 gli altri dati usano `|tojson`. ORIGINE: revisione fable del 21/09/2026 su ramo `V3.0.0`, commit 8cc5e82. Documento completo: `_output/2026-09-21-TieMeasureFlow-revisione.md` su Wasabi.
Adriano added the bug label 2026-09-21 20:14:52 +00:00
Adriano added the assegnata:jeeg label 2026-09-21 20:23:20 +00:00
Author
Owner

⚡ jeeg — preso in carico 2026-09-21T20:23:21Z
ramo: lavoro/jeeg · capacità: docker, gpu, systemd

⚡ jeeg — **preso in carico** 2026-09-21T20:23:21Z ramo: `lavoro/jeeg` · capacità: docker, gpu, systemd
Author
Owner

ANALISI (passo 1) — ramo lavoro/jeeg, worktree ~/lavoro/TieMeasureFlow su jeeg, lotto B1

MODIFICHE: task_execute.html:929-930 — lotNumber: {{ (lot_number or '')|tojson }}, serialNumber: {{ (serial_number or '')|tojson }}. Cerca nello stesso file ogni altro '{{ ... }}' con dati utente (non stringhe _()) e applica |tojson.
TEST: src/frontend/flask_app/tests — render della pagina con lotto A&B-12 e LOT\ → nel sorgente compare il JSON corretto ("A\u0026B-12" o "A&B-12" senza &amp;).

ANALISI (passo 1) — ramo `lavoro/jeeg`, worktree `~/lavoro/TieMeasureFlow` su jeeg, lotto B1 MODIFICHE: task_execute.html:929-930 — `lotNumber: {{ (lot_number or '')|tojson }}`, `serialNumber: {{ (serial_number or '')|tojson }}`. Cerca nello stesso file ogni altro `'{{ ... }}'` con dati utente (non stringhe `_()`) e applica `|tojson`. TEST: src/frontend/flask_app/tests — render della pagina con lotto `A&B-12` e `LOT\` → nel sorgente compare il JSON corretto (`"A\u0026B-12"` o `"A&B-12"` senza `&amp;`).
Author
Owner

Soluzione

ESITO: fatto
COSA: lotNumber/serialNumber con |tojson. Test: A&B-12 non diventa A&amp;B-12, backslash e apostrofo restano JSON valido.
COMMIT (ramo lavoro/jeeg, unito su V3.0.0 a d483fa1): c8caf40
PROVA: uv run --extra server --extra client --extra dev pytest -q → 622 passed, 4 skipped (erano 391); visione su Python 3.13 → 16 passed (erano 8).

**Soluzione** ESITO: fatto COSA: `lotNumber`/`serialNumber` con `|tojson`. Test: `A&B-12` non diventa `A&amp;B-12`, backslash e apostrofo restano JSON valido. COMMIT (ramo lavoro/jeeg, unito su V3.0.0 a d483fa1): c8caf40 PROVA: `uv run --extra server --extra client --extra dev pytest -q` → 622 passed, 4 skipped (erano 391); visione su Python 3.13 → 16 passed (erano 8).
Adriano removed the assegnata:jeeg label 2026-09-21 21:56:39 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Adriano/TieMeasureFlow#32