גילוי סוג הקובץ ברובי

כאשר יש תוכנה שצריכה לקרוא ולהשתמש בקבצים שונים, מומלץ מאוד לבדוק שסוג הקובץ שקיבלנו הוא בכלל מה שאנחנו צריכים.

הדרך הלא יעילה לעשות את זה, היא באמצעות בדיקת סיומת הקובץ (בעולם היוניקס זה לא כזה משנה מה הסיומת בד"כ, למעט תוכנות ספציפיות). אבל הדרך הטובה היא לבדוק את תוכן הקובץ. בעולם היוניקס (ולינוקס), יש פקודה בשם file אשר עושה את זה, ואפשר להשתמש בספרייה שלה בשביל לקבל את אותו המידע, בלי להריץ את הפקודה דרך ה shell.

בשביל זה, אני משתמש בתוספת בשם ruby-filemagic. הבעיה אבל בשיטה הזו היא שהפקודה בודקת רק את ה"ראש" של הקובץ ולא את כל התוכן, וזה אומר שאני עדיין יכול לשתול מידע זדוני כמידע שיפורש (בייחוד אם יש באג במפרש הקובץ) ולסכן את המחשב, ולכן מומלץ גם ללמוד לנתח את תוכן הקובץ ולדעת האם הוא תקין או לא.

דוגמא לשימוש ב ruby-filemagic אפשר למצוא כאן.

2 מחשבות על “גילוי סוג הקובץ ברובי

  1. רם מתתיהו

    עניין זה גם מעניין אותי מאוד,
    כבר קרה לי שהעלו לי לשרת "תמונה" שמכילה קוד.
    כפי שאמרת, קל מאוד להסוות את זה פשוט על ידי מתן header מתאים לתמונה

  2. ik_5 מאת

    הפתרון הוא לקחת משהו כמו image magic שיודע לספק פרטים מלאים על התמונה (כולל ההצגה שלה) ולראות אם הוא מצליח לפרש ללא בעיה. במידה וכן, אז לשמור מחדש אחרי העלאה את המידע התקין לגמרי (ככה גם אם יש צריך להסוות את הקוד ושהתמונה תראה רגילה, יש סיכוי להעיף את זה). כמובן שלהסיר את כל ההערות הטאגים המיותרים של JPG וכו' ורק להציג פיזית את התוכן.

    אבל זה משהו כוללני מידי לבעיה שיכולה להיות יותר נקודתית והטיפול בה שונה.

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s