הגדרות INI (.ini)

De תקן

Windows Initialization Configuration (INI) הוא פורמט קובץ ההגדרה הקלאסי הקריא לאדם שפופולריזציה בוצעה על ידי Microsoft Windows, המארגן הגדרות יישום לתוך [קטעים] בעלי שמות המכילים צמדי מפתח=ערך.

המר INI ל-JSON

ממיר חינמי מ-INI ל-JSON פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.

בדיקה ומטא-דאטה

מערכות הפעלה ומנתחי קבצים מזהים קבצי INI על ידי בדיקת רצף הבייטים הבינארי הראשוני:

בחר או גרור קבצים לכאן

המרה פרטית ב-100% בתוך הדפדפן - הקבצים לעולם אינם עוזבים את המכשיר שלך

או הדבק Ctrl+V
הבטחת פרטיות ללא העברה ברשת: 0 בייט הועלו לשרתים חיצוניים. כל העיבוד מתבצע באופן מקומי בארגז החול של הדפדפן שלך.

חתימת כותרת ברמת הבייט (Magic Bytes)

מערכות הפעלה ומנתחי קבצים מזהים קבצי INI על ידי בדיקת רצף הבייטים הבינארי הראשוני:

חתימת HEX (היסט 0):

5B ... 5D

ייצוג ASCII: [...]

תקינה: De facto industry configuration standard

מפרט טכני

ארכיטקטורת מעטפתPlaintext configuration file structured into [section] headers containing key = value pairs and comments (; or #)
דחיסהUncompressed text file
סדר בתים (Endianness)UTF-8 or ANSI text stream
מרחבי צבעN/A (Configuration File)
ערוצים ומבנהKey-value configuration properties categorized by section namespaces
ממדים מרבייםHistorical 64 KB limit in 16-bit Windows; unlimited in modern implementations
שקיפותNone
הזרמה ופרוגרסיביותSequential line-by-line streaming parser

מטריצת השוואה טכנית: INI מול מתחרים

תכונה טכניתINI (נוכחי)JSONYAMLTOML
מורכבות תחבירהפשוט ביותר האפשרי (סעיף + key=val)סוגריים ומרכאות קפדנייםרווחים רגישים להזחהטבלאות מוקלדות מודרניות
תמיכה בהערותמקומי (הערות ; ו-#)אין תמיכה בהערות במפרטמקומי (הערות #)מקומי (הערות #)
מבנים מקונניםקטעים של רמה 1 בלבדאובייקטים/מערכים מקוננים אינסופייםעצים מקוננים אינסופייםמערכי טבלאות מובנים
סוגי נתונים (Data Typing)מחרוזות משתמעות (היישום מנתח סוגים)מספרים מפורשים, בוליאנים, מערכיםסוגים מפורשים ועוגניםתאריכים מפורשים, מספרים, מערכים

מצבי שיחשות נפוצים ומדריך שחזור הקסדצימלי (Hex)

היישום מתעלם מהגדרות או נכשל בהפעלה.

גורם שורש: חסר סוגר כותרת של סעיף (למשל '[Settings' במקום '[Settings]') או סימן שווה לא מנוקה בערך.

התאוששות: אמת ותקן את תחביר ה-INI באמצעות מעצב התצורה של File2File.

ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)

על מנתחי INI להגן מפני התקפות הזרקת סעיפים והרעלת אבות טיפוס (Prototype pollution) בעת פענוח אובייקטים.

ווקטורי תקיפה ידועים

  • הזרקת INI שבה הוספת שורה חדשה בקלט המשתמש יוצרת מקטעי תצורה בלתי מורשים.
  • הרעלת אבות טיפוס במנתחי INI מבוססי JavaScript המקצים ערכים ל-'__proto__'.
  • מניעת שירות (DoS) באמצעות הרחבת שמות סעיפים רкурסיבית עמוקה.

השיטות המומלצות להגנה:

היסטוריה ואבני דרך

2000ספריית ברירת המחדל של פייתון משלבת את מודול ConfigParser ומבססת את INI כפורמט תצורת תוכנה אוניברסלי.
1995Windows 95 מציג את ה-Registry של Windows כדי להחליף קובצי INI מערכתיים מונוטוליטיים (SYSTEM.INI, WIN.INI).
1985Microsoft Windows 1.0 מציג את WIN.INI כמסד הנתונים המרכזי לתצורת מערכת ההפעלה.

יתרונות מרכזיים

  • תחביר נקי ואינטואיטיבי במיוחד: משתמשים שאינם טכניים יכולים לקרוא ולשנות הגדרות בקלות.
  • ממשקי API מקוריים לניתוח כמעט בכל שפת תכנות (configparser בפייתון, parse_ini_file ב-PHP, C#).
  • מרחבי שמות של מקטעים מונעים התנגשויות בהגדרות בין תכונות יישום שונות.

מגבלות טכניות וחסרונות

  • אין תקן בינלאומי רשמי: תווי הערה (; לעומת #) וכללי בריחה (escaping) מששתנים בין מנתחים שונים (Parsers).
  • היררכיה שטוחה: אינו תומך במערכים מקוננים עמוק או באובייקטים מובנים מורכבים ללא מפרידים מותאמים אישית.
  • כל הערכים נקראים כמחרוזות, מה שמחייב יישומים לנתח ידנית מספרים שלמים (integers), בוליאנים ונקודה צפה.

עובדות טכניות מעניינות

  • ב-Windows 3.1, כל הגדרה בודדת בכל מערכת ההפעלה אוחסנה בשני קבצים בלבד: WIN.INI ו-SYSTEM.INI.
  • Git משתמש בפורמט INI עבור קובץ התצורה הראשי של המאגר הממוקם ב-'.git/config'.
  • קובצי קיצורי דרך שולחניים בלינוקס (קובצי '.desktop' של XDG Desktop Entry) ממונים באמצעות תחביר INI סטנדרטי.

שאלות טכניות נפוצות

למה משמש קובץ INI?

קובצי INI נמצאים בשימוש תוכנות שולחניות, משחקים וכלי מפתחים (כמו Git config ו-PHP.ini) לאחסון העדפות משתמש והגדרות תצורה בפורמט קריא וקל.

איך אוכל לערוך קובץ INI?

ניתן לפתוח ולערוך קובצי INI באמצעות כל עורך טקסט בסיסי כמו Notepad, TextEdit, VS Code, או ישירות באינטרנט באמצעות File2File.app.

האם אני יכול להמיר INI ל-JSON או YAML?

כן. File2File.app יכול להמיר קובצי INI לפורמטים נקיים של JSON, YAML או TOML באופן מיידי בדפדפן שלך.