איך לחסום הצגת IFRAME של האתר שלכם בתוך אתרים אחרים

שימוש ב-X-Frame באתרי וורדפרס

אתרי אינטרנט, וורדפרס  דייזי עיצוב גרפי0 תגובות

שתפו

שימוש ב-X-Frame באתרי וורדפרס

כך תוכלו בצורה פשוטה לחסום הצגת IFRAME של האתר שלכם בתוך אתרים אחרים

לאחרונה התבקשתי להכניס iframe של דף מסויים בדף של אתר אחר. למי שלא מכיר את המושג, iframe זה קיצור של inline frame, ומדובר על הטמעת document (מסמך) HTML בתוך מסמך HTML אחר. בשיטה זו משתמשים בדרך כלל להטמעת תוכן של אתר מסויים בתוך דף של אתר אחר.
לאחר ביצוע ההטמעה קיבלתי מסך ריק בדף בו הטמעתי את ה-iframe.

בבדיקה ב-console של הדפדפן, הוצגה השגיאה הבאה:

Refused to display <the domain> in a frame because it set 'X-Frame-Options' to 'sameorigin'

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

מהו X-FRAME?

X-FRAME הוא שם כולל לפורמט המאפשר לצרף מספר אלמנמטים (web parts) בדף בודד.
כחלק מהפורמט, X-FRAME מאפשר להחליט האם הדפדפן יכול לרנדר iframes של אתרים אחרים. כלומר בעל האתר יכול לעשות שימוש באופציה זו על מנת להחליט אם הוא מתיר לאתרים אחרים להציב iframe של האתר שלו באתרים שלהם.

מהן האפשרויות בשימוש באופציית X-FRAME?

ניתן להציב 3 ערכים באופציית X-FRAME בהתאם לשימוש אותו נרצה לממש:

  • X-Frame-Options :DENY: הדף לא יוצג ב-iframe בשום מצב, גם אם מוצג תחת אותו אתר בו התוכן המקורי קיים.
  • X-Frame-Options :SAMEORIGIN: הדף יוצג ב-iframe רק באותו אתר בו קיים התוכן המקורי (לא יוצג באתרים אחרים).
  • X-Frame-Options :ALLOW-FROM https://example.com: הדף יוצג ב-iframe רק בכתובת בו הוגדר (במקרה בדוגמה זה https://example.com).

שימוש ב X-FRAME באתרי וורדפרס

באתרי וורדפרס קיימת הפונקציה הבאה בקובץ function.php תחת תיקיית wp-includes:

function send_frame_options_header() {
@header( 'X-Frame-Options: SAMEORIGIN' );
}

הפונקציה מגדירה שימוש בערך SAMEORIGIN באופציית X-FRAME, כלומר שימוש בה ימנע מהדפדפן להציג תוכן ב-iframe של האתר שלנו באתרים אחרים.
ע"י שימוש ב-hook מסוג 'send_headers', נוכל לעשות שימוש בפונקציה 'send_frame_options_header'. לכן, כל שעלינו לעשות על מנת לחסום שימוש ב-iframe של האתר שלנו בדפים של אתרים אחרים, הוא להוסיף את שורת הקוד הבאה לקובץ function.php (מדובר על קובץ function.php של התבנית ולא זה שנמצא בתיקיית wp-includes):

תמיכה בדפדפנים

יש לשים לב כי לא כל הדפדפנים תומכים באופציה של x-frame, וישנו שוני בין mobile ל-desktop וכן בתמיכה באופציות השונות:

איך לחסום הצגת IFRAME של האתר שלכם בתוך אתרים אחרים

* קרדיט על התמונה לאתר https://developer.mozilla.org

בהצלחה, דייזי עיצוב גרפי www.daisydesign.co.il


על הכותבת

דייזי עיצוב גרפי

Facebook Google+

דייזי עיצוב גרפי הוא סטודיו לעיצוב גרפי ומיתוג, עם ניסיון והתמחות של למעלה מ-15 שנים במגוון תחומי העיצוב הגרפי, ו-UX/UI (איפיון עיצוב ממשקי משתמש לאתרים ואפליקציות). הסטודיו נולד מאהבה גדולה ליצירתיות ולאפשרויות האינסופיות של הבאה לידי ביטוי והצגתו של הדמיון על המסך ועל הנייר.

שתפו

להשארת תגובה