Setări INI (.ini)

Standard Standard

Windows 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:

Selectează sau plasează fișierele aici

Privat - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate: nicio transmisie prin rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

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 ... 5D

REPREZENTARE ASCII: [...]

Standardizare: Standard de facto în industrie pentru fișierele de configurare

Specificații tehnice

Arhitectură containerFișier de configurare text simplu, structurat în antete [secțiune] cu perechi cheie=valoare și comentarii (; sau #)
CompresieFișier text necomprimat
Ordinea octețilorFlux de text UTF-8 sau ANSI
Spații de culoareNu 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 maximeLimita istorică era 64 KB în Windows pe 16 biți; implementările moderne nu au limită
TransparențăNiciuna
Streaming și progresivParser secvențial care citește linia după linie

Matrice de comparație tehnică: INI vs. concurenți

Atribut tehnicINI (Curent)JSONYAMLTOML
Complexitatea sintaxeiCea mai simplă posibilă (secțiune + cheie=val)Paranteze și ghilimele stricteSpații albe sensibile la indentareTabele moderne tipizate
Suport pentru comentariiSuport nativ pentru comentarii cu ; și #Niciun comentariu acceptat în specificațieSuport nativ pentru comentarii cu #Suport nativ pentru comentarii cu #
Structuri imbricateDoar secțiuni de nivel 1Obiecte/tablouri imbricate infiniteArbore imbricat infinitTablouri de tabele structurate
Tipizarea datelorȘiruri de caractere implicite (aplicația determină tipurile)Numere explicite, booleene, tablouriTipuri explicite și ancoreDate 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

2000Biblioteca standard Python include configparser pentru lucrul cu fișiere INI.
1995Windows 95 introduce Registry-ul Windows pentru a înlocui fișierele INI monolitice de sistem (SYSTEM.INI, WIN.INI).
1985Microsoft Windows 1.0 introduce WIN.INI ca bază de date principală de configurare a sistemului de operare.

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.