INI Ayarları (.ini)

Fiilî Standart

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

Dosyaları buraya seç veya bırak

Özel - dosyalar cihazınızdan asla ayrılmaz

veya yapıştır Ctrl+V
Sıfır Ağ Aktarımı Gizlilik Garantisi: Harici sunuculara 0 bayt yüklendi. Tüm işlemler tarayıcındaki korumalı alanda (sandbox) yerel olarak gerçekleştirildi.

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

ASCII GÖSTERİMİ: [...]

Standartlaştırma: Fiilî sektör yapılandırma standardı

Teknik Özellikler

Kapsayıcı mimarisikey = value çiftleri ve yorumlar (; veya #) içeren [section] üstbilgileri halinde düzenlenmiş düz metin yapılandırma dosyası
SıkıştırmaSı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 Boyutlar16 bit Windows’taki tarihî 64 KB sınırı; modern uygulamalarda sınırsız
ŞeffaflıkNone
Akış ve Aşamalı İşlemeSatırları sırayla işleyen akış ayrıştırıcısı

Teknik karşılaştırma matrisi: INI ve rakipleri

Teknik NitelikINI (Güncel)JSONYAMLTOML
Sözdizimi KarmaşıklığıMümkün olan en basit (bölüm + anahtar=değer)Katı köşeli parantezler ve tırnaklarGirintiye duyarlı boşluklarModern tiplendirilmiş tablolar
Yorum DesteğiYerel (; ve # yorumları)Spesifikasyonda yorum desteği yokYerel (# yorumları)Yerel (# yorumları)
İç İçe YapılarYalnızca 1 seviyeli bölümlerSonsuz iç içe nesneler/dizilerSonsuz iç içe ağaçlarYapılandırılmış tablo dizileri
Veri TiplendirmeÖrtük dizeler (uygulama tipleri ayrıştırır)Açık sayılar, mantıksal değerler, dizilerAçı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ı

2000Python standart kitaplığında INI dosyalarıyla çalışmak için configparser bulunur.
1995Windows 95, monolitik sistem INI dosyalarının (SYSTEM.INI, WIN.INI) yerini almak üzere Windows Kayıt Defteri'ni (Registry) tanıtır.
1985Microsoft Windows 1.0, temel işletim sistemi yapılandırma veritabanı olarak WIN.INI'yi tanıtır.

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.