תיקון תוכן מעורב

ג'ו-אל ואן ברגן
ז'ו-אל ואן ברגן

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

במדריך הזה נדגים שיטות וכלים לפתרון בעיות קיימות של תוכן מעורב ולמניעת בעיות חדשות.

חיפוש תוכן מעורב על ידי כניסה לאתר

כשנכנסים לדף HTTPS ב-Google Chrome, הדפדפן מציג התראות על תוכן מעורב כשגיאות ואזהרות בלוח JavaScript.

בקטע מהו תוכן מעורב?, תוכלו למצוא כמה דוגמאות ולראות איך הבעיות מדווחות בכלי הפיתוח ל-Chrome.

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

כלי הפיתוח ל-Chrome שבהם מוצגות האזהרות כשהמערכת מזהה תוכן מעורב ומשודרגת

תוכן מעורב פעיל חסום ומציג אזהרה.

כלי הפיתוח ל-Chrome שמציגים את האזהרות שמוצגות כשתוכן מעורב פעיל נחסם

אם יש אזהרות כאלה לגבי כתובות URL מסוג http:// באתר, צריך לתקן אותן במקור של האתר. כדאי להכין רשימה של כתובות ה-URL האלה, יחד עם הדף שמצאתם, כדי להשתמש בהן לאחר התיקון.

חיפוש תוכן מעורב באתר שלך

אתם יכולים לחפש תוכן מעורב ישירות בקוד המקור. מחפשים את הערך http:// במקור ומחפשים תגים שכוללים מאפיינים של כתובת URL מסוג HTTP. שימו לב שלרוב, הוספה של http:// במאפיין href של תגי עוגן (<a>) לא נחשבת לבעיה של תוכן מעורב. כמה יוצאים מן הכלל ציינו בהמשך.

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

תיקון תוכן מעורב

לאחר שתמצאו תוכן מעורב במקור האתר, תוכלו לבצע את הפעולות הבאות כדי לתקן אותו.

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

אם המשאב לא זמין דרך https://, כדאי לשקול אחת מהאפשרויות הבאות:

  • יש לכלול את המשאב ממארח אחר, אם יש מארח אחר.
  • להוריד ולארח את התוכן ישירות באתר שלך, אם החוק מתיר זאת.
  • מחריגים לגמרי את המשאב מהאתר.

אחרי שתפתרו את הבעיה, בדקו את הדף שבו מצאתם את השגיאה במקור וודאו שהיא כבר לא מופיעה.

היזהרו משימוש לא סטנדרטי בתגים

היזהרו משימוש לא סטנדרטי בתגים באתר. לדוגמה, כתובות URL של תגי עוגן (<a>) לא גורמות לשגיאות תוכן משולבות, כי הן גורמות לדפדפן לעבור לדף חדש. המשמעות היא שבדרך כלל אין צורך לתקן אותן. עם זאת, חלק מהסקריפטים של גלריית התמונות מבטלים את הפונקציונליות של התג <a> וטוענים את משאב ה-HTTP שצוין על ידי המאפיין href בתצוגת Lightbox בדף, וכך יוצרים בעיה של תוכן מעורב.

טיפול בתוכן מעורב בקנה מידה נרחב

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

מדיניות בנושא אבטחת תוכן

Content Security Policy (CSP) היא תכונת דפדפן רב-תכליתית שאפשר להשתמש בה כדי לנהל תוכן מעורב בקנה מידה גדול. מנגנון הדיווח של CSP מאפשר לעקוב אחרי תוכן מעורב באתר, ולספק מדיניות אכיפה שמגינה על המשתמשים על ידי שדרוג או חסימה של תוכן מעורב.

אפשר להפעיל את התכונות האלה לדף מסוים על ידי הכללת הכותרת Content-Security-Policy או Content-Security-Policy-Report-Only בתגובה שנשלחת מהשרת שלכם. בנוסף, אפשר להגדיר את Content-Security-Policy (אבל לא Content-Security-Policy-Report-Only) באמצעות התג <meta> בקטע <head> בדף.

חיפוש תוכן מעורב במדיניות אבטחת תוכן

אפשר להשתמש במדיניות אבטחת תוכן כדי לאסוף דיווחים על תוכן מעורב באתר. כדי להפעיל את התכונה הזו, יש להגדיר את ההוראה Content-Security-Policy-Report-Only על-ידי הוספה שלה ככותרת תגובה לאתר שלך.

כותרת התגובה:

Content-Security-Policy-Report-Only: default-src https: 'unsafe-inline' 'unsafe-eval'; report-uri https://example.com/reportingEndpoint

בכל פעם שמשתמש מבקר בדף באתר שלכם, הדפדפן שלו שולח דוחות בפורמט JSON לגבי כל דבר שמפר את מדיניות אבטחת התוכן אל https://example.com/reportingEndpoint. במקרה כזה, בכל פעם שמשאב משנה נטען באמצעות HTTP, נשלח דוח. הדוחות האלה כוללים את כתובת ה-URL של הדף שבו התרחשה הפרת המדיניות, ואת כתובת ה-URL של מקור המשנה שהפרה את המדיניות. אם הגדרתם את נקודת הקצה של הדיווח לתעד את הדוחות האלה, תוכלו לעקוב אחרי התוכן המעורב באתר בלי לבקר בעצמכם בכל דף.

שתי נקודות שחשוב לשים לב אליהן הן:

  • המשתמשים חייבים להיכנס לדף בדפדפן שמבין את הכותרת של CSP. זה נכון לגבי רוב הדפדפנים המודרניים.
  • אתם מקבלים דוחות רק לגבי דפים שהמשתמשים שלכם ביקרו בהם. לכן, אם יש לכם דפים שלא מקבלים הרבה תנועה, יכול להיות שיעבור זמן מה עד שתקבלו דוחות על האתר כולו.

במדריך Content Security Policy תוכלו למצוא מידע נוסף ונקודת קצה לדוגמה.

חלופות לדיווח באמצעות CSP

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

שדרוג בקשות לא מאובטחות

תמיכה בדפדפן

  • 44
  • 17
  • 48
  • 10.1

מקור

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

הוראת ה-CSP upgrade-insecure-requests מורה לדפדפן לשדרג כתובות URL לא מאובטחות לפני שליחת בקשות לרשת.

לדוגמה, אם דף מכיל תג תמונה עם כתובת URL מסוג HTTP כמו <img src="http://example.com/image.jpg">

במקום זאת, הדפדפן שולח בקשה מאובטחת אל https://example.com/image.jpg, וכך שומר את המשתמש מתוכן מעורב.

אפשר להפעיל את ההתנהגות הזו על ידי שליחת הכותרת Content-Security-Policy עם ההוראה הזו:

Content-Security-Policy: upgrade-insecure-requests

לחלופין, על ידי הטמעת הוראה זו בתוך הקטע <head> של המסמך באמצעות האלמנט <meta>:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

בדומה לשדרוג האוטומטי של הדפדפן, אם המשאב לא זמין ב-HTTPS, הבקשה המשודרגת תיכשל והמשאב לא ייטען. כך ניתן לשמור על אבטחת הדף. ההוראה upgrade-insecure-requests תכלול הרבה יותר משדרוג אוטומטי של הדפדפן, בניסיון לשדרג בקשות שלא קיימות בדפדפן כרגע.

ההוראה upgrade-insecure-requests יורדת לתוך <iframe> מסמכים כדי להבטיח שכל הדף מוגן.