INI-instellingen (.ini)
De StandaardWindows Initialization Configuration (INI) is het klassieke, leesbare configuratiebestandsformaat dat populair is geworden door Microsoft Windows en toepassingsinstellingen organiseert in benoemde [secties] die sleutel = waarde-paren bevatten.
INI naar JSON converteren
Gratis INI-naar-JSON-converter in uw browser. Converteer bestanden direct op uw apparaat.
Inspecteren en metadata
Besturingssystemen en bestandsanalysators herkennen INI-bestanden aan de hand van de eerste binaire bytesequentie:
Bestandshandtekening op byteniveau (magic bytes)
Besturingssystemen en bestandsanalysators herkennen INI-bestanden aan de hand van de eerste binaire bytesequentie:
HEX-HANDTEKENING (OFFSET 0):
5B ... 5DASCII-WEERGAVE: [...]
Standaardisatie: De facto industriestandaard voor configuratie
Technische specificaties
| Containerarchitectuur | Configuratiebestand in platte tekst, gestructureerd met [section]-koppen met sleutel-waardeparen en commentaar (; of #) |
| Compressie | Niet-gecomprimeerd tekstbestand |
| Bytevolgorde (endianness) | UTF-8- of ANSI-tekststroom |
| Kleurruimten | N.v.t. (configuratiebestand) |
| Kanalen en structuur | Configuratie-eigenschappen in de vorm van sleutel en waarde, gecategoriseerd op sectienaamruimte |
| Maximale afmetingen | Historische limiet van 64 KB in 16-bits Windows; onbeperkt in moderne implementaties |
| Transparantie | Geen |
| Streaming en progressief | Sequentiële regel-voor-regel-streamingparser |
Technische vergelijkingsmatrix: INI versus concurrenten
| Technisch kenmerk | INI (Huidig) | JSON | YAML | TOML |
|---|---|---|---|---|
| Syntaxiscomplexiteit | Zo eenvoudig mogelijk (sectie + sleutel=waarde) | Strikte haken en aanhalingstekens | Inspringingsgevoelige witruimte | Moderne getypte tabellen |
| Ondersteuning voor commentaar | Ingebouwd (;- en #-commentaar) | Geen commentaar ondersteund in specificatie | Ingebouwd (#-commentaar) | Ingebouwd (#-commentaar) |
| Geneste structuren | Alleen secties van 1 niveau | Oneindig geneste objecten/arrays | Oneindig geneste bomen | Gestructureerde tabelarrays |
| Gegevenstypen | Impliciete tekenreeksen (app parseert typen) | Expliciete getallen, booleans, arrays | Expliciete typen en ankers | Expliciete datums, getallen, arrays |
Veelvoorkomende beschadigingen en gids voor hex-herstel
Toepassing negeert instellingen of start niet op.
Oorzaak: Ontbrekende haak in sectiekop (bijv. '[Settings' in plaats van '[Settings]') of niet-geëscapet gelijkteken in een waarde.
Herstel: Valideer en herstel de INI-syntaxis met de Config Formatter van File2File.app.
Beveiligingsanalyse en aanvalsvectoren voor parsers
INI-parsers moeten zich beschermen tegen sectie-injectieaanvallen en prototypevervuiling bij het deserialiseren naar objecten.
Bekende aanvalsvectoren
- INI-injectie waarbij het invoegen van regeleinden in gebruikersinvoer ongeautoriseerde configuratiesecties aanmaakt.
- Prototypevervuiling in JavaScript-INI-parsers die waarden toewijzen aan '__proto__'.
- Denial of service door diep recursieve expansie van sectienamen.
Aanbevolen beveiligingspraktijken: Verwijder nieuwe-regeltekens uit gebruikersinvoer en bescherm tegen prototypevervuiling.
Historische oorsprong en mijlpalen
Belangrijkste voordelen
- Uitzonderlijk overzichtelijke, intuïtieve syntaxis: niet-technische gebruikers kunnen instellingen eenvoudig lezen en wijzigen.
- Ingebouwde parseer-API's in bijna elke programmeertaal (Python configparser, PHP parse_ini_file, C#).
- Sectienaamruimten voorkomen conflicten tussen instellingen van verschillende toepassingsfuncties.
Technische beperkingen
- Geen formele internationale standaard: commentaartekens (; vs #) en escape-regels verschillen per parser.
- Vlakke hiërarchie: biedt geen ondersteuning voor diep geneste arrays of complexe gestructureerde objecten zonder aangepaste scheidingstekens.
- Alle waarden worden gelezen als tekenreeksen, waardoor toepassingen gehele getallen, booleaanse waarden en drijvende-kommagetallen handmatig moeten interpreteren.
Interessante technische weetjes
- In Windows 3.1 werd elke individuele instelling in het hele besturingssysteem opgeslagen in slechts twee bestanden: WIN.INI en SYSTEM.INI.
- Git gebruikt het INI-formaat voor het primaire configuratiebestand van de repository op '.git/config'.
- Snelkoppelingsbestanden op het Linux-bureaublad (XDG Desktop Entry-bestanden met de extensie '.desktop') zijn opgebouwd met de standaard-INI-syntaxis.
Veelgestelde technische vragen
Waar wordt een INI-bestand voor gebruikt?
INI-bestanden worden gebruikt door desktopsoftware, games en ontwikkelaarstools (zoals Git-configuratie en PHP.ini) om gebruikersvoorkeuren en instellingen op te slaan in een eenvoudig leesbaar formaat.
Hoe kan ik een INI-bestand bewerken?
U kunt INI-bestanden openen en bewerken met elke eenvoudige teksteditor zoals Kladblok, TextEdit, VS Code of rechtstreeks online via File2File.app.
Kan ik INI converteren naar JSON of YAML?
Ja. File2File.app kan INI-bestanden direct in uw browser converteren naar overzichtelijke JSON-, YAML- of TOML-formaten.