Impostazioni INI (.ini)
De StandardWindows Initialization Configuration (INI) è il classico formato di file di configurazione leggibile dall'uomo reso popolare da Microsoft Windows, che organizza le impostazioni delle applicazioni in [sezioni] denominate contenenti coppie chiave=valore.
Converti da INI a JSON
Convertitore gratuito da INI a JSON nel browser. Converti i file istantaneamente sul tuo dispositivo.
Ispeziona 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 container | File di configurazione in testo semplice strutturato in intestazioni [section] contenenti coppie key = value 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 classificate per namespace di sezione |
| 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 (Corrente) | JSON | YAML | TOML |
|---|---|---|---|---|
| Complessità della sintassi | Il più semplice possibile (sezione + chiave=val) | Parentesi e virgolette rigorose | Spazi bianchi sensibili 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 Hex
L'applicazione ignora le impostazioni o non si avvia.
Causa principale: Parentesi di intestazione di sezione mancante (ad es. '[Settings' anziché '[Settings]') o segno di uguale non sottoposto a escape nel valore.
Ripristino: Convalidare e correggere la sintassi INI utilizzando File2File 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__'.
- Denial of service tramite l'espansione ricorsiva profonda 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 e pro
- Sintassi eccezionalmente pulita e intuitiva: gli utenti non tecnici possono leggere e modificare facilmente le impostazioni.
- API di analisi native in quasi tutti i programmi linguistici (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 (; vs #) 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 interessanti
- 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 file INI con qualsiasi editor di testo di base come Notepad, TextEdit, VS Code o direttamente online utilizzando 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.