טיהור קלט משתמש בגישה למערכת קבצים
-
@יוסף-בן-שמעון
תווים כלליים * וכדו' לא צריך? -
@יוסף-בן-שמעון לא יודע מה בדיוק אתה רוצה לבצע.
אבל בעקרון, נגיד שה dirname זה usr/, ואז המשתמש יכניס /* אז הוא בעצם בחר את כל הקבצים תחת usr. -
@יוסף-בן-שמעון לדעתי, לך על הכיוון ההפוך, תחשוב איזה תווים אתה מוכרח לקבל, ואז תאפשר רק לתווים אלה לעבור.
כמו:a-z A-Z 0-9 א-ת , -
-
@dovid זה אמור להראות פחות או יותר כך:
var input = 'https://go.shidur.net/2018/vod/ED018069.mp4'; var fileName = input.replace(/\/|:|\./g, '_'); // https___go_shidur_net_2018_vod_ED018069_mp4 var fullPath = dirName + '/' + fileName + '.mp3'
ולפני כן זה גם בודק אם זו תבנית URL חוקית.
יש עוד משהו להאקר לחפש שם? -
@יוסף-בן-שמעון
אתה מודע לזה שהדוגמאות הבאות וכדו', יחזירו אותו נתיב.'https://go.shidur.net/2018.vod/ED018069.mp4'; 'https://go.shidur.net/2018/vod/ED018069:mp4';
-
@יוסף-בן-שמעון התכוונתי למשהו שלא קשור ישירות לעניין.
אני לא בדיוק יודע מה המטרה.
אבל היות ואתה מחליף מספר תווים ב _, יוצא שייתכן ש 2 URLים יצביעו על אותו קובץ. -
@יוסף-בן-שמעון
לכאורה יותר נוגע לענין איך אתה משתמש בנתיב הסופי שקיבלת, האם אתה מריץ עליו פקודות ב-shell או שעושה קובץ ישירות דרך מערכת ההפעלה. נפק"מ, האם תווים מיוחדים יתורגמו באופן מיוחד או לא. -
@WWW אמר בטיהור קלט משתמש בגישה למערכת קבצים:
@יוסף-בן-שמעון התכוונתי למשהו שלא קשור ישירות לעניין.
אני לא בדיוק יודע מה המטרה.
אבל היות ואתה מחליף מספר תווים ב _, יוצא שייתכן ש 2 URLים יצביעו על אותו קובץ.לכאורה זה לא אמור להפריע לי, אם זה נתיב שלא קיים אז ההורדה תכשל
-
@yossiz אמר בטיהור קלט משתמש בגישה למערכת קבצים:
@יוסף-בן-שמעון
לכאורה יותר נוגע לענין איך אתה משתמש בנתיב הסופי שקיבלת, האם אתה מריץ עליו פקודות ב-shell או שעושה קובץ ישירות דרך מערכת ההפעלה. נפק"מ, האם תווים מיוחדים יתורגמו באופן מיוחד או לא.צודק, זה כותב קובץ לדיסק עם פקודת shell. תודה!