Convalida, formatta, minimizza e pulisci JSON deliberatamente
JSON è rigoroso riguardo a virgolette, virgole, parentesi e tipi di valore. La formattazione può rendere leggibile un documento, mentre la minimizzazione rimuove gli spazi bianchi insignificanti. Nessuna delle due operazioni cambia se i dati sono sensibili.
Lo scrubber applica le regole dei nomi di campo selezionati dall'utente dopo l'analisi del JSON valido. È una comodità per strutture prevedibili, non un rilevatore di privacy semantica, e i valori annidati possono comunque rivelare le stesse informazioni sotto un'altra chiave o all'interno di testo libero.
La convalida della sintassi è la prima porta
Un parser JSON controlla virgolette, virgole, parentesi e tipi di valore supportati. Non sa se una data è possibile, un identificatore ha la lunghezza giusta o manca un campo aziendale obbligatorio.
Considera l'analisi riuscita come un permesso per ispezionare la struttura, non come una prova di correttezza. Utilizzare un validatore di schema quando il sistema ricevente definisce uno schema.
La formattazione e la minimizzazione preservano il significato solo all'interno delle regole JSON
Il rientro e gli spazi bianchi insignificanti possono cambiare senza modificare i valori analizzati. L'ordine delle chiavi può essere preservato da un'implementazione ma non dovrebbe essere utilizzato come significato semantico a meno che un protocollo separato non dica diversamente.
Anche i numeri possono essere una preoccupazione. JavaScript rappresenta i normali numeri JSON con comportamento IEEE-754, quindi numeri interi molto grandi possono perdere precisione nell'elaborazione downstream.
Scrub valori, non solo etichette familiari
Una regola chiave può rimuovere i campi email o token quando i nomi sono prevedibili. Lo stesso valore può rimanere sotto un'altra chiave, all'interno di un messaggio di registro, in un URL o codificato all'interno di una stringa nidificata.
Dopo lo scrubbing, cerca i valori originali e ispeziona gli array e gli oggetti profondamente annidati. L’anonimizzazione richiede un’analisi più ampia del rischio dei dati rispetto all’eliminazione di alcune proprietà.
Ricorda la persistenza locale e la cronologia degli appunti
Il formattatore memorizza l'input e le preferenze correnti in localStorage. Su un profilo condiviso, un altro utente può riaprire quello stato finché non viene cancellato.
La copia dell'output potrebbe inserirlo nella cronologia del sistema operativo o del gestore degli appunti. Cancella lo strumento, evita i segreti reali nelle dimostrazioni e utilizza la gestione dei segreti appositamente creata per le credenziali.
Definire la minaccia di condivisione prima di scegliere le regole di scrubbing
Uno scrub utile inizia dal destinatario e dal motivo della condivisione. Il personale di supporto potrebbe aver bisogno di un codice di errore e di un timestamp ma non di un token di accesso, di un'e-mail del cliente, di un nome host interno o del corpo completo della richiesta. Annotare i campi obbligatori, i campi che devono essere rimossi e i valori che necessitano di mascheramento parziale. Esegui lo scrubber, quindi cerca sia le chiavi conosciute che i valori campione riconoscibili. Ricorda che gli identificatori possono apparire all'interno di testo libero, array, stringhe codificate o nomi di proprietà sconosciuti. Quando la posta in gioco è alta, crea manualmente un esempio JSON minimo invece di inviare un record di produzione ridotto.
Avvio rapido: LocalUtils
- Incolla o digita una copia del JSON e convalidalo prima di fare ipotesi sulla struttura.
- Utilizzare la formattazione per la revisione e la minimizzazione solo quando è effettivamente necessaria una rappresentazione compatta.
- Configura le regole di pulizia per i nomi esatti dei campi utilizzati nel documento, quindi controlla ogni sostituzione nel contesto.
- Copia o scarica il risultato e validalo nuovamente nel sistema di destinazione.
Cosa fa il browser
Il browser analizza l'input con la gestione JSON JavaScript, applica ricorsivamente le regole chiave configurate e serializza il risultato con o senza rientro.
Le preferenze di input e scrub correnti vengono archiviate in localStorage per comodità. Tale persistenza è utile su un dispositivo personale ma inappropriata per i dati riservati su un profilo del browser condiviso.
Ingressi e uscite
- Input: un valore JSON valido, incluso un oggetto, un array, una stringa, un numero, un valore booleano o null.
- Output: testo JSON formattato, minimizzato o cancellato.
- Commenti, virgole finali, NaN, Infinity e la sintassi degli oggetti JavaScript non sono JSON standard.
Limiti da sapere prima di iniziare
- Un documento valido può ancora avere lo schema sbagliato o valori fuorvianti.
- Lo scrubbing basato su chiavi non rileva i segreti archiviati con nomi imprevisti o incorporati nel testo.
- I documenti incollati di grandi dimensioni possono rallentare l'editor e la memorizzazione nel browser.
- La formattazione non crittografa, rende anonime o convalida le regole aziendali.
Lista di controllo per la verifica
- Analizzare l'output finale in un secondo parser JSON.
- Cerca ogni valore sensibile originale, non solo il nome della chiave prevista.
- Confronta i conteggi e i campi obbligatori con lo schema di origine prima di utilizzare il risultato.
Risoluzione dei problemi
- Utilizzare la posizione segnalata vicino a un errore di analisi ed esaminare la virgola, la citazione o la parentesi precedente.
- Se una regola cambia troppo, restringi la corrispondenza del nome del campo ed eseguila nuovamente dall'originale.
- Se l'editor diventa lento, utilizza un flusso di lavoro orientato ai file o in streaming anziché incollare dati di più megabyte.
Domande che le persone fanno
Perché il JSON valido continua a non funzionare nella mia API?
L'API potrebbe richiedere uno schema, una codifica, una dimensione, un contesto di autenticazione o una semantica di campo specifici oltre la sintassi JSON.
La formattazione può modificare un numero intero enorme?
L'analisi tramite valori numerici JavaScript può perdere precisione al di fuori dell'intervallo di numeri interi sicuri. Memorizzare tali identificatori come stringhe quando lo schema lo consente.
L'eliminazione di un nome rende anonimo un record?
Non necessariamente. Altri campi e combinazioni possono identificare la stessa persona e set di dati esterni possono consentire la reidentificazione.
