INI Ayarları (.ini)
Fiilî StandartWindows Başlatma Yapılandırması (INI), Microsoft Windows tarafından popülerleştirilen, uygulama ayarlarını anahtar=değer çiftleri içeren adlandırılmış [bölümlerde] düzenleyen, klasik ve insan tarafından okunabilir bir yapılandırma dosyası formatıdır.
INI biçimini JSON biçimine dönüştür
Tarayıcında INI biçimini JSON biçimine ücretsiz dönüştür. Dosyaları cihazında anında dönüştür.
İncele ve Meta Veriler
İşletim sistemleri ve dosya çözümleyicileri, INI dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
Bayt düzeyinde başlık imzası (sihirli baytlar)
İşletim sistemleri ve dosya çözümleyicileri, INI dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
HEX İMZASI (OFSET 0):
5B ... 5DASCII GÖSTERİMİ: [...]
Standartlaştırma: Fiilî sektör yapılandırma standardı
Teknik Özellikler
| Kapsayıcı mimarisi | key = value çiftleri ve yorumlar (; veya #) içeren [section] üstbilgileri halinde düzenlenmiş düz metin yapılandırma dosyası |
| Sıkıştırma | Sıkıştırılmamış metin dosyası |
| Bayt Düzeni (Endianness) | UTF-8 veya ANSI metin akışı |
| Renk Uzayları | N/A (Configuration File) |
| Kanallar ve Yapı | Bölüm ad alanlarına göre sınıflandırılmış anahtar-değer yapılandırma özellikleri |
| Maksimum Boyutlar | 16 bit Windows’taki tarihî 64 KB sınırı; modern uygulamalarda sınırsız |
| Şeffaflık | None |
| Akış ve Aşamalı İşleme | Satırları sırayla işleyen akış ayrıştırıcısı |
Teknik karşılaştırma matrisi: INI ve rakipleri
| Teknik Nitelik | INI (Güncel) | JSON | YAML | TOML |
|---|---|---|---|---|
| Sözdizimi Karmaşıklığı | Mümkün olan en basit (bölüm + anahtar=değer) | Katı köşeli parantezler ve tırnaklar | Girintiye duyarlı boşluklar | Modern tiplendirilmiş tablolar |
| Yorum Desteği | Yerel (; ve # yorumları) | Spesifikasyonda yorum desteği yok | Yerel (# yorumları) | Yerel (# yorumları) |
| İç İçe Yapılar | Yalnızca 1 seviyeli bölümler | Sonsuz iç içe nesneler/diziler | Sonsuz iç içe ağaçlar | Yapılandırılmış tablo dizileri |
| Veri Tiplendirme | Örtük dizeler (uygulama tipleri ayrıştırır) | Açık sayılar, mantıksal değerler, diziler | Açık tipler ve çapalar (anchors) | Açık tarihler, sayılar, diziler |
Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu
Uygulama ayarları yok sayıyor veya başlatılamıyor.
Kök Neden: Eksik bölüm başlığı köşeli parantezi (örn. '[Settings]' yerine '[Settings') veya değer içinde kaçış karakteri kullanılmamış eşittir işareti.
Kurtarma: File2File.app Config Formatter ile INI sözdizimini doğrula ve düzelt.
Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri
INI ayrıştırıcıları, nesnelere seri durumdan çıkarma (deserialization) sırasında bölüm enjeksiyon saldırılarına ve prototip kirlenmesine (prototype pollution) karşı koruma sağlamalıdır.
Bilinen Saldırı Vektörleri
- Kullanıcı girdisine yeni satır eklenmesiyle yetkisiz yapılandırma bölümlerinin oluşturulduğu INI enjeksiyonu.
- '__proto__' değerine atama yapan JavaScript INI ayrıştırıcılarında prototip kirlenmesi.
- Derinlemesine yinelemeli (recursive) bölüm adı genişletme yoluyla hizmet reddi (DoS).
Savunmaya yönelik en iyi uygulamalar: Yeni satır karakterlerini engellemek ve prototip kirlenmesine karşı korunmak için kullanıcı girdilerini temizle.
Tarihsel kökenler ve önemli dönüm noktaları
Temel Avantajlar ve Artılar
- Son derece temiz, sezgisel sözdizimi: Teknik olmayan kullanıcılar ayarları kolayca okuyabilir ve değiştirebilir.
- Neredeyse tüm programlama dillerinde yerel ayrıştırma API'leri (Python configparser, PHP parse_ini_file, C#).
- Bölüm ad alanları (namespaces), farklı uygulama özellikleri arasında ayar çakışmalarını önler.
Teknik Kısıtlamalar ve Eksiler
- Resmi bir uluslararası standardı yoktur: Yorum karakterleri (; ve #) ve kaçış kuralları ayrıştırıcılar arasında değişiklik gösterir.
- Düz hiyerarşi: Özel sınırlayıcılar olmadan derinlemesine iç içe geçmiş dizileri veya karmaşık yapılandırılmış nesneleri desteklemez.
- Tüm değerler dize (string) olarak okunur; bu da uygulamaların tamsayıları, mantıksal değerleri (true/false) ve kayan noktalı sayıları (float) manuel olarak ayrıştırmasını gerektirir.
İlginç Teknik Bilgiler
- Windows 3.1'de işletim sisteminin içindeki her bir ayar yalnızca iki dosyada depolanıyordu: WIN.INI ve SYSTEM.INI.
- Git, '.git/config' konumunda bulunan birincil depo yapılandırma dosyası için INI formatını kullanır.
- Linux'taki masaüstü kısayol dosyaları (XDG Desktop Entry '.desktop' dosyaları) standart INI sözdizimi kullanılarak yapılandırılır.
Sıkça Sorulan Teknik Sorular
INI dosyası ne için kullanılır?
INI dosyaları; masaüstü yazılımlar, oyunlar ve geliştirici araçları (Git yapılandırması ve PHP.ini gibi) tarafından kullanıcı tercihlerini ve yapılandırma ayarlarını kolayca okunabilir bir formatta saklamak için kullanılır.
Bir INI dosyasını nasıl düzenleyebilirim?
INI dosyalarını Notepad, TextEdit veya VS Code gibi basit bir metin düzenleyicide ya da doğrudan çevrimiçi File2File.app ile açıp düzenleyebilirsin.
INI dosyasını JSON veya YAML formatına dönüştürebilir miyim?
Evet. File2File.app, INI dosyalarını doğrudan tarayıcında anında temiz JSON, YAML veya TOML biçimlerine dönüştürebilir.