אבטחת בקשות להמרת תמונות

בדף הזה מוסבר איך לקבוע בצורה מדויקת יותר מי יוכל לצפות בתוכן שלכם וכמה זמן. אתם יכולים להשתמש בכתובות URL חתומות של Cloud CDN וב-Service Extensions כדי לתת גישה מאובטחת ומוגבלת בזמן לתמונות הממוטבות שלכם.

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

  • דליפת מטא-נתונים: תוקף יכול להסיר פרמטרים כמו metadata,preserve=none כדי לאחזר קואורדינטות GPS מוסתרות או מידע רגיש על המצלמה שמופיע בקובץ המקור.

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

אתם יכולים להשתמש בכתובות URL חתומות ו-Service Extensions כדי למנוע בקשות לא רצויות לשינוי.

מניעה באמצעות כתובות URL חתומות

כדי לצמצם את הסיכונים האלה, צריך להגדיר כתובות URL חתומות ב-Cloud CDN כדי להגן על המסלולים. כשחותמים על כתובת URL, כל מחרוזת ההגדרה של פרמטר השאילתה imop הופכת לחלק מהחתימה הקריפטוגרפית ש-Cloud CDN מאמת בכל בקשה. אם משתמש מנסה לשנות פעולות או פרמטרים, למשל sizes, מערכת Cloud CDN מאמתת באופן אוטומטי את החתימה הקריפטוגרפית ודוחה את הבקשה, ומחזירה קוד סטטוס HTTP 403 Forbidden.

מידע נוסף זמין במאמר בנושא כתובות URL חתומות.

הוספה לרשימת ההיתרים באמצעות Service Extensions

בעזרת Service Extensions, מפתחים יכולים להטמיע לוגיקה מותאמת אישית שניתנת לתכנות במישור הנתונים של Cloud CDN. הלוגיקה המותאמת אישית הזו מאפשרת לבצע מניפולציה מתקדמת של הבקשה ולאכוף את האבטחה לפני שתכונת אופטימיזציית התמונות מעבדת את הבקשה.

התוסף Service Extensions מאפשר לנתח את מחרוזת השאילתה imop ולהתאים את הפרמטרים שלה לרשימת היתרים קבועה. לדוגמה, אפשר להגדיר רק רוחבים רספונסיביים מוגדרים מראש, 200, 400 או 800.

בדוגמה הבאה אפשר לראות איך בקשה לא מורשית מנסה לעקוף את מטמון הקצה, ואיך Service Extensions מטפלים בבקשות כאלה:

  1. לקוח מבקש תמונה בגודל לא סטנדרטי שלא נשמרה במטמון:

    image.jpg?imop=Resize,width=401

  2. התכונה Service Extensions מיירטת את הבקשה ב-Cloud CDN edge. היא מנתחת את מחרוזת השאילתה כדי לחלץ את transformation parameter: width=401.

  3. התוסף Service Extensions משווה בין 401 לבין נקודות עצירה מוגדרות מראש של עיצוב רספונסיבי:

  4. רשימת ההיתרים: 200, 400, 800

  5. כשמזוהה ש-401 לא נמצא ברשימת ההיתרים, התוספים של שירותים מפסיקים מיד את הבקשה ומחזירים שגיאה HTTP 403 (Forbidden) או מסירים את הפרמטרים כדי להציג את התמונה המקורית.

הבקשה לא מעובדת, וכך נמנעת בעיה של מיצוי משאבי מחשוב קצה.

מידע נוסף זמין במאמר בנושא הרחבות של שירותים.

המאמרים הבאים