דילוג לתוכן
חיפוש באתר

אבטחה

Mixed content: תוכן מעורב אחרי מעבר ל-HTTPS — איך מוצאים ומתקנים

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

· 0 צפיות ·

Mixed content (תוכן מעורב) הוא מצב שבו עמוד שנטען בצורה מאובטחת ב-HTTPS טוען בתוכו משאבים — תמונות, סקריפטים, קבצי עיצוב, גופנים או iframe — דרך HTTP לא מוצפן. לפי MDN, כל משאב שנשלח בלי הצפנה יכול להיקרא או להשתנות בדרך על ידי תוקף, וסקריפטים הם המסוכנים ביותר כי הם יכולים לשנות כל חלק בעמוד. בפועל, תוכן מעורב הוא הסיבה הנפוצה ביותר לכך שאחרי מעבר ל-HTTPS המנעול בשורת הכתובת "לא נקי", חלק מהעמוד נשבר, או טופס מציג אזהרה.

מה הדפדפן עושה עם תוכן מעורב

דפדפנים מודרניים לא רק מזהירים — הם מתערבים. MDN מחלקת את התוכן המעורב לשני סוגים:

סוג דוגמאות מה הדפדפן עושה
ניתן לשדרוג תמונה ב-img src, תמונת רקע ב-CSS, וידאו ואודיו מנסה אוטומטית לטעון ב-HTTPS
חסים סקריפטים, קבצי CSS, iframe, גופנים, בקשות fetch, תמונות ב-srcset חוסם את הבקשה

שתי השלכות חשובות מזה. ראשית, סקריפט שנטען ב-HTTP פשוט לא ירוץ — ואם הוא חלק מהתפריט, מהטופס או מהסליקה, משהו באתר יפסיק לעבוד בלי שום הודעה לגולש. שנית, MDN מציינת שתמונות שמוגדרות דרך srcset או picture נחסמות ולא משודרגות — וזה בדיוק המנגנון שוורדפרס משתמש בו לתמונות רספונסיביות. כך קורה שתמונה "נעלמת" רק במובייל. עוד מקרה שמופיע שם: שדרוג אוטומטי לא מתבצע כשהמשאב מוגדר לפי כתובת IP ולא לפי שם דומיין.

מאיפה הוא מגיע אחרי מעבר ל-HTTPS

תוכן מעורב כמעט תמיד הוא שארית מהתקופה שהאתר עבד ב-HTTP. המקומות הנפוצים:

  • תוכן העמודים והפוסטים — וורדפרס שומר במסד הנתונים כתובות מלאות של תמונות וקישורים, כולל http://. אחרי מעבר, אלפי כתובות ישנות נשארות בתוכן.
  • הגדרות התבנית והתוספים — לוגו, תמונת רקע או קובץ שהוזן בשדה הגדרות עם כתובת מלאה.
  • קוד שהודבק ידנית — סקריפט של צד שלישי, ווידג'ט או פיקסל שהודבק עם כתובת HTTP.
  • קבצי CSS — url() לתמונת רקע או לגופן עם כתובת מלאה.
  • שירותים חיצוניים — משאב משרת שלא תומך ב-HTTPS בכלל. כאן אין מה לשדרג — צריך להחליף ספק או לארח את הקובץ אצלכם.

איך מוצאים את כל המקרים

  1. קונסולת הדפדפן — פתחו את כלי המפתחים (F12), לשונית Console. כל משאב שנחסם או שודרג מופיע שם עם הכתובת המדויקת. זו הבדיקה המהירה והמדויקת ביותר לעמוד בודד.
  2. חיפוש במסד הנתונים — בוורדפרס, חיפוש של המחרוזת http:// יחד עם שם הדומיין שלכם בתוכן הפוסטים ובטבלת ההגדרות יחשוף את רוב השאריות.
  3. סריקת אתר — כלי סריקה שעובר על כל העמודים ומדווח על משאבים לא מאובטחים, לאתרים עם הרבה עמודים.

איך מתקנים — בסדר הנכון

1. החלפה במסד הנתונים

הדרך הנקייה בוורדפרס היא החלפה גורפת של הכתובת הישנה בחדשה, בכלי שמבין את הפורמט של וורדפרס (נתונים "מסודרים" — serialized — שנשברים בהחלפה טקסטואלית רגילה). עם WP-CLI:

wp search-replace 'http://example.co.il' 'https://example.co.il' --all-tables --dry-run

מריצים קודם עם --dry-run כדי לראות כמה שינויים יהיו, ורק אחרי גיבוי — בלי הדגל. ראו גיבוי אתר וורדפרס.

2. קוד, תבנית והגדרות

תקנו ידנית כתובות בקבצי התבנית, ב-CSS ובשדות הגדרות. העדיפו כתובות יחסיות לקבצים באתר, ו-https מפורש לשירותים חיצוניים.

3. רשת ביטחון: upgrade-insecure-requests

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

Content-Security-Policy: upgrade-insecure-requests

זה עוזר רק אם המשאב באמת זמין גם ב-HTTPS. זו רשת ביטחון, לא תחליף לתיקון. ב-Cloudflare קיימת הגדרה מקבילה בשם Automatic HTTPS Rewrites; על ההגדרות שחשוב להפעיל שם כתבתי במאמר Cloudflare מה זה.

אל תשכחו את המטמון

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

שאלות נפוצות

האם תוכן מעורב פוגע בגוגל?

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

תוסף "SSL אוטומטי" לא פותר את זה?

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

מאמרים קשורים: מה זה HTTP? איך הדפדפן והשרת מדברים.

מעבר ל-HTTPS שנעשה נכון — תעודה, הפניות, החלפה במסד הנתונים וניקוי מטמון — הוא חלק מכל העברת אתר שאני מבצע. אם אחרי מעבר ל-HTTPS משהו באתר שלכם עדיין "לא נקי", כתבו לי.

אהבתם את המאמר?

בואו נבנה יחד!

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

חיפוש באתר