Impostazioni INI (.ini)
De StandardWindows Initialization Configuration (INI) è il classico formato di file di configurazione leggibile introdotto da Microsoft Windows. Organizza le impostazioni delle applicazioni in sezioni denominate, con coppie chiave=valore.
Converti da INI a JSON
Convertitore gratuito da INI a JSON nel browser. Converti i file istantaneamente sul tuo dispositivo.
Ispezione e metadati
I sistemi operativi e gli analizzatori di file identificano i file INI ispezionando la sequenza di byte binari iniziale:
Firma dell'intestazione a livello di byte (Magic Bytes)
I sistemi operativi e gli analizzatori di file identificano i file INI ispezionando la sequenza di byte binari iniziale:
FIRMA ESADECIMALE (OFFSET 0):
5B ... 5DRAPPRESENTAZIONE ASCII: [...]
Standardizzazione: De facto industry configuration standard
Specifiche tecniche
| Architettura del contenitore | File di configurazione in testo semplice, organizzato in intestazioni [section] con coppie chiave=valore e commenti (; o #) |
| Compressione | File di testo non compresso |
| Endianness dei byte | Flusso di testo UTF-8 o ANSI |
| Spazi colore | N/D (File di configurazione) |
| Canali e struttura | Proprietà di configurazione chiave-valore raggruppate in sezioni |
| Dimensioni massime | Limite storico di 64 KB in Windows a 16 bit; illimitato nelle implementazioni moderne |
| Trasparenza | Nessuna |
| Streaming e progressivo | Parser in streaming sequenziale riga per riga |
Matrice di confronto tecnico: INI vs Concorrenti
| Attributo tecnico | INI (Attuale) | JSON | YAML | TOML |
|---|---|---|---|---|
| Complessità della sintassi | Il più semplice possibile (sezione + chiave=val) | Parentesi e virgolette rigorose | Spaziatura sensibile all'indentazione | Tabelle tipizzate moderne |
| Supporto dei commenti | Nativo (commenti ; e #) | Nessun commento supportato nelle specifiche | Nativo (commenti #) | Nativo (commenti #) |
| Strutture annidate | Solo sezioni a 1 livello | Oggetti/array annidati infiniti | Alberi annidati infiniti | Array di tabelle strutturate |
| Tipizzazione dei dati | Stringhe implicite (l'app analizza i tipi) | Numeri espliciti, booleani, array | Tipi e ancoraggi espliciti | Date, numeri, array espliciti |
Modalità di corruzione comuni e guida al recupero esadecimale
L'applicazione ignora le impostazioni o non si avvia.
Causa principale: Parentesi mancante nell'intestazione della sezione (ad es. '[Settings' anziché '[Settings]') o segno di uguale non sottoposto a escape nel valore.
Ripristino: Convalidare e correggere la sintassi INI utilizzando File2File.app Config Formatter.
Analisi di sicurezza e vettori di attacco del parser
I parser INI devono proteggersi dagli attacchi di iniezione di sezione e dall'inquinamento dei prototipi durante la deserializzazione in oggetti.
Vettori di attacco noti
- Iniezione INI in cui l'inserimento di interruzioni di riga nell'input dell'utente crea sezioni di configurazione non autorizzate.
- Inquinamento dei prototipi nei parser INI JavaScript che assegnano a '__proto__'.
- Interruzione del servizio tramite espansione ricorsiva eccessiva dei nomi delle sezioni.
Migliori pratiche difensive: Sanificare gli input utente per vietare i caratteri di interruzione di riga e proteggersi dall'inquinamento dei prototipi.
Origini storiche e tappe fondamentali
Vantaggi principali
- Sintassi eccezionalmente pulita e intuitiva: gli utenti non tecnici possono leggere e modificare facilmente le impostazioni.
- API di analisi native in quasi tutti i linguaggi di programmazione (configparser di Python, parse_ini_file di PHP, C#).
- I namespace di sezione impediscono collisioni di impostazioni tra diverse funzioni dell'applicazione.
Limiti tecnici e svantaggi
- Nessuno standard internazionale formale: i caratteri di commento (; o #) e le regole di escape variano tra i parser.
- Gerarchia piatta: non supporta array profondamente annidati o oggetti strutturati complessi senza delimitatori personalizzati.
- Tutti i valori vengono letti come stringhe, richiedendo alle applicazioni di analizzare manualmente numeri interi, booleani e numeri in virgola mobile.
Curiosità tecniche
- In Windows 3.1, ogni singola impostazione dell'intero sistema operativo era memorizzata in soli due file: WIN.INI e SYSTEM.INI.
- Git utilizza il formato INI per il suo file di configurazione del repository principale situato in '.git/config'.
- I file di scelta rapida del desktop su Linux (file '.desktop' XDG Desktop Entry) sono strutturati utilizzando la sintassi INI standard.
Domande tecniche frequenti
A cosa serve un file INI?
I file INI vengono utilizzati da software desktop, giochi e strumenti per sviluppatori (come la configurazione di Git e PHP.ini) per archiviare le preferenze dell'utente e le impostazioni di configurazione in un formato facilmente leggibile.
Come posso modificare un file INI?
Puoi aprire e modificare i file INI con qualsiasi editor di testo, come Blocco note, TextEdit o VS Code, oppure online con File2File.app.
Posso convertire INI in JSON o YAML?
Sì. File2File.app può convertire i file INI in formati JSON, YAML o TOML puliti istantaneamente nel tuo browser.