Setări INI (.ini)
Standard StandardWindows Initialization Configuration (INI) este formatul clasic de fișier de configurare ușor de citit de către om, popularizat de Microsoft Windows, care organizează setările aplicației în secțiuni denumite, care conțin perechi cheie=valoare.
Convertește din INI în JSON
Convertor gratuit din INI în JSON direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.
Inspectare și metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele INI prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (octeți magici)
Sistemele de operare și analizatoarele de fișiere identifică fișierele INI prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):
5B ... 5DREPREZENTARE ASCII: [...]
Standardizare: Standard de facto în industrie pentru fișierele de configurare
Specificații tehnice
| Arhitectură container | Fișier de configurare text simplu, structurat în antete [secțiune] cu perechi cheie=valoare și comentarii (; sau #) |
| Compresie | Fișier text necomprimat |
| Ordinea octeților | Flux de text UTF-8 sau ANSI |
| Spații de culoare | Nu se aplică (fișier de configurare) |
| Canale și structură | Proprietăți de configurare cheie-valoare, grupate în spații de nume ale secțiunilor |
| Dimensiuni maxime | Limita istorică era 64 KB în Windows pe 16 biți; implementările moderne nu au limită |
| Transparență | Niciuna |
| Streaming și progresiv | Parser secvențial care citește linia după linie |
Matrice de comparație tehnică: INI vs. concurenți
| Atribut tehnic | INI (Curent) | JSON | YAML | TOML |
|---|---|---|---|---|
| Complexitatea sintaxei | Cea mai simplă posibilă (secțiune + cheie=val) | Paranteze și ghilimele stricte | Spații albe sensibile la indentare | Tabele moderne tipizate |
| Suport pentru comentarii | Suport nativ pentru comentarii cu ; și # | Niciun comentariu acceptat în specificație | Suport nativ pentru comentarii cu # | Suport nativ pentru comentarii cu # |
| Structuri imbricate | Doar secțiuni de nivel 1 | Obiecte/tablouri imbricate infinite | Arbore imbricat infinit | Tablouri de tabele structurate |
| Tipizarea datelor | Șiruri de caractere implicite (aplicația determină tipurile) | Numere explicite, booleene, tablouri | Tipuri explicite și ancore | Date explicite, numere, tablouri |
Moduri comune de corupție și ghid de recuperare hexazecimală
Aplicația ignoră setările sau nu reușește să pornească.
Cauză principală: Lipsește paranteza antetului de secțiune (de ex., „[Settings" în loc de „[Settings]") sau semnul egal nu a fost protejat (unescaped) în valoare.
Recuperare: Validează și corectează sintaxa INI cu Config Formatter din File2File.app.
Analiză de securitate și vectori de atac asupra parserului
Parserele INI trebuie să se protejeze împotriva atacurilor de injecție în secțiuni și a poluării prototipurilor la deserializarea în obiecte.
Vectori de atac cunoscuți
- Injecție INI în care introducerea de caractere newline în datele introduse de utilizator creează secțiuni de configurare neautorizate.
- Poluarea prototipurilor în parserele INI din JavaScript prin atribuirea către „__proto__".
- Refuz de servicii (DoS) prin expansiunea profund recursivă a numelui secțiunilor.
Cele mai bune practici de securitate: Igienizează datele introduse de utilizatori pentru a interzice caracterele de linie nouă și a preveni poluarea prototipurilor.
Origini istorice și repere
Avantaje cheie și beneficii
- Sintaxă excepțional de curată și intuitivă: utilizatorii non-tehnici pot citi și modifica cu ușurință setările.
- APIs de parsare native în aproape fiecare limbaj de programare (Python configparser, PHP parse_ini_file, C#).
- Spațiile de nume ale secțiunilor previn conflictele de setări între diferitele funcționalități ale aplicației.
Limitări tehnice și dezavantaje
- Fără standard internațional formal: caracterele de comentariu (; vs #) și regulile de escapare variază între parsere.
- Ierarhie plată: nu acceptă tablouri profund imbricate sau obiecte structurate complexe fără delimitatori personalizați.
- Toate valorile sunt citite ca șiruri de caractere (stringuri), necesitând ca aplicațiile să parseze manual numerele întregi, booleenele și numerele cu virgulă mobilă.
Curiozități tehnice interesante
- În Windows 3.1, fiecare setare din întregul sistem de operare era stocată în doar două fișiere: WIN.INI și SYSTEM.INI.
- Git utilizează formatul INI pentru fișierul său principal de configurare a depozitului, aflat la „.git/config".
- Fișierele de comenzi rapide desktop de pe Linux (fișierele XDG Desktop Entry „.desktop") sunt structurate folosind sintaxa INI standard.
Întrebări tehnice frecvente
Pentru ce este folosit un fișier INI?
Fișierele INI sunt folosite de software-ul pentru desktop, jocuri și instrumente pentru dezvoltatori (cum ar fi configurația Git și PHP.ini) pentru a stoca preferințele utilizatorilor și setările de configurare într-un format ușor de citit.
Cum pot edita un fișier INI?
Poți deschide și edita fișiere INI cu orice editor de text simplu, precum Notepad, TextEdit sau VS Code, ori direct online cu File2File.app.
Pot converti INI în JSON sau YAML?
Da. File2File.app poate converti imediat fișiere INI în formate JSON, YAML sau TOML bine formatate, direct în browser.