Nagłówek HTTP X-Frame-Options
Napisał: Patryk Krawaczyński
25/04/2013 w Bezpieczeństwo Brak komentarzy. (artykuł nr 406, ilość słów: 239)
Nagłówek HTTP X-Frame-Options
może zostać używany, aby określić politykę zachowania przeglądarki w stosunku do renderowania strony, która została zamknięta w ramkach: <FRAME>
lub <IFRAME>
. Serwisy internetowe mogą go wykorzystać, aby uniknąć ataków typu clickjacking – poprzez zapewnienie, że ich treść nie zostanie osadzona w innych witrynach.
Przykład: w przypadku, gdy nagłówek HTTP X-Frame-Options zostanie wysłany w odpowiedzi z zawartością: DENY
przez serwis dobra-strona.com do przeglądarki, która rozumie jego treść – wówczas nawet, jeśli serwis dobra-strona.com zostanie “uwięziony” w IFRAME
strony zła-strona.com – nie zostanie ona wyświetlona przez przeglądarkę.
Implementacja tego rozwiązania jest bardzo prosta. W serwerze Apache ogranicza się do włączonego modułu mod_headers oraz dodania dyrektywy w konfiguracji:
<IfModule mod_headers.c> Header always append X-Frame-Options SAMEORIGIN </IfModule>
W serwerze nginx konfiguracja przedstawia się następująco:
add_header X-Frame-Options SAMEORIGIN;
Niestety ta metoda obrony przed clickjackingem posiada też kilka ograniczeń:
- Większość przeglądarek na razie toleruje tylko polityki: DENY/SAMEORIGIN,
- Nagłówek X-Frame-Options może zostać usunięty przez pośredniczące proxy w celu usunięcia ochrony,
- Brak możliwości określenia białych list adresów, które są uprawnione do zamykania w ramkach serwis.
X-Frame-Options mimo swoich ograniczeń, ale ze względu na prostotę implementacji na pewno warto wziąć pod uwagę jako dodatkową warstwę zabezpieczeń przeciwko clickjacking.
Więcej informacji: HTTP Header Frame Options, X-Frame-Options