איך מוסיפים כותרת X-Frame-Options (הגנה מ-clickjacking)

בלי X-Frame-Options, אתר זדוני יכול להציג את האתר שלכם בתוך מסגרת שקופה ולגרום למבקרים ללחוץ על כפתורים בלי לדעת. SAMEORIGIN מאפשר הטמעה רק מתוך האתר שלכם.

אם אתר אחר שלכם או שותף מטמיע את האתר הזה ב-iframe, ההטמעה תיחסם. במקרה כזה השתמשו ב-CSP frame-ancestors עם רשימת האתרים המותרים.

איך מתקנים, לפי הפלטפורמה שלכם

WordPress

איפה: הקובץ functions.php של ערכת העיצוב (או תוסף לקטעי קוד)

add_action('send_headers', function () {
  header("X-Frame-Options: SAMEORIGIN");
});

WordPress שולח את הכותרת X-Frame-Options בכל טעינת עמוד.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `X-Frame-Options`.

Cloudflare

איפה: לוח הבקרה של Cloudflare: Rules ← Transform Rules ← Modify Response Header ← Add

Set static  —  Header name: X-Frame-Options  —  Value: SAMEORIGIN

Cloudflare מוסיף את הכותרת X-Frame-Options בשרתי הקצה שלו, בלי שינוי בשרת שלכם.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `X-Frame-Options`.

Vercel / Next.js

איפה: הקובץ next.config.js, בתוך הפונקציה async headers()

module.exports = {
  async headers() {
    return [{ source: "/(.*)", headers: [
      { key: "X-Frame-Options", value: "SAMEORIGIN" },
    ]}];
  },
};

Next.js שולח את הכותרת X-Frame-Options בכל נתיב.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `X-Frame-Options`.

Netlify

איפה: קובץ `_headers` בתיקיית הפרסום (או netlify.toml)

/*
  X-Frame-Options: SAMEORIGIN

Netlify מוסיף את הכותרת X-Frame-Options לכל הנתיבים (`/*`).

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `X-Frame-Options`.

Nginx

איפה: nginx.conf — בתוך הבלוק `server { }`, ואז טענו מחדש את nginx

add_header X-Frame-Options "SAMEORIGIN" always;

מוסיף את הכותרת X-Frame-Options לכל תגובה.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `X-Frame-Options`.

Apache

איפה: .htaccess (או הגדרות ה-vhost), ואז הפעילו מחדש את Apache

Header always set X-Frame-Options "SAMEORIGIN"

מוסיף את הכותרת X-Frame-Options דרך mod_headers.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `X-Frame-Options`.

IIS

איפה: web.config — בתוך <system.webServer><httpProtocol><customHeaders>

<add name="X-Frame-Options" value="SAMEORIGIN" />

מוסיף את הכותרת X-Frame-Options ב-IIS.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `X-Frame-Options`.

שרת האתר שלכם

איפה: הגדרות כותרות התגובה בשרת האתר שלכם

X-Frame-Options: SAMEORIGIN

הגדירו את השרת או את ה-CDN לשלוח את הכותרת הזו בכל תגובה.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `X-Frame-Options`.

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

לסריקה חינמית של האתר

מדריכים קשורים