Defaults.Exposed › Opravy › Ochrana pred clickjackingom (X-Frame-Options)
Ako opraviť Ochrana pred clickjackingom (X-Frame-Options)
Jednoriadková inštrukcia, ktorá hovorí prehliadačom, aby nedovolili iným webom tajne načítať vašu stránku vo vnútri ich vlastnej. Bez nej môže podvodník skryť vaše skutočné, prihlásené stránky za falošnou stránkou a oklamať vašich zákazníkov, aby klikli na veci, ktoré nikdy nemali — schvaľovanie platby, zmenu hesla, udelenie prístupu.
Podstata pre vaše podnikanie: Podvodník môže neviditeľne zabaliť váš živý web do falošného a ukradnúť peniaze alebo prístup k účtu od vašich prihlásených zákazníkov — a zákazníkovi to vyzerá, ako keby to urobila vaša stránka. Oprava je zadarmo a trvá vývojárovi asi 15 minút; ponechanie jej vypnutej je známa medzera, ktorú zločinci aj opatrní kupujúci môžu okamžite odhaliť.
Čo vás to môže stáť
- Podvodník skryje váš skutočný prihlasovací alebo platobný ekrán za nevinne vyzerajúcou stránkou a oklame zákazníka, aby 'potvrdil' prevod alebo zmenu nastavenia, bez toho, aby si to uvedomil — zákazník vás obviňuje, nie útočníka.
- Vaša prihlásená oblasť účtu sa načíta neviditeľne na vrchu stránky 'Vyhrali ste — kliknite na získanie'; kliknutie skutočne schváli skutočnú zmenu na zákazníkovom účte a vy odpoviete na nahnevaný podporný hovor.
- IT tím potenciálneho zákazníka spustí rýchly bezpečnostný sken pred podpisom, vidí, že vašu stránku môže vložiť ktokoľvek, a označí to ako riziko, ktoré zastavuje alebo ruší obchod.
- Vaša značka sa stáva návnadou v podvodnej kampani; zákazníci, ktorí boli chytení, si to pamätajú ako 'spoločnosť, ktorej stránka to dovolila'.
- Sken poisťovateľa alebo kybernetického poistenia uvádza chýbajúcu ochranu pred clickjackingom ako zlyhanie základnej hygieny — lacno opraviteľné, trápne mať označené.
Prečo na tom záleží. Toto je bezplatné, jednoriadkové nastavenie, ktoré trvá minúty na pridanie a uzatvára celú triedu trikov zameraných na vašich prihlásených zákazníkov. V našom hodnotení je to hodnotená kontrola webovej bezpečnosti s hodnotou skutočných bodov, hodnotená ako vysoká závažnosť, pretože chýbajúca hlavička zanecháva známu, ľahko kontrolovateľnú dieru, ktorú zločinci automatizujú a kupujúci hľadajú.
Čo to je, v jednoduchých slovách
Keď niekto navštívi váš web, ich prehliadač môže byť tiež povedaný, aby načítal vašu stránku vo vnútri inej webovej stránky — ako malé okno vložené vo väčšej stránke. Znie to nevinne a niekedy je to. Ale je to mechanizmus za útokom nazývaným clickjacking.
Tu je trik. Podvodník si vytvorí vlastnú stránku a ticho načíta váš skutočný web do nej — neviditeľne, urobený plne transparentným. Potom na vrch položí vlastný obsah: okázalé tlačidlo, “Prehrať video,” “Získajte svoju cenu.” Zákazník vidí stránku útočníka a klikne na to, čo vyzerá ako nevinné tlačidlo. Ale pretože váš skutočný web sedí neviditeľne pod ich kurzorom, kliknutie skutočne pristane na vašej stránke — potvrdí platbu, zmení heslo, schváli prístup, prijme povolenie.
Ochrana pred clickjackingom je krátka, neviditeľná inštrukcia, ktorú váš web posiela každému prehliadaču návštevníka a ktorá v podstate hovorí:
“Nedovoľte iným webom načítavať ma do nich. Ak sa o to niekto pokúsi, odmietnite.”
Moderné prehliadače to automaticky dodržiavajú. Po zapnutí trik jednoducho nefunguje — vložená kópia vašej stránky odmietne načítať.
Čo vás to môže stáť
-
Neviditeľné “potvrdiť”. Zákazník je prihlásený do vášho účtovného portálu v jednej záložke. Pristane na stránke (z reklamy, e-mailu, výsledku vyhľadávania), ktorá sľubuje niečo lákavé a zobrazuje veľké tlačidlo “Pokračovať”. Skryté pod týmto tlačidlom je vaše skutočné ovládanie “Potvrdiť prevod” alebo “Zmeniť e-mail”, načítané z ich vlastnej prihlásenej relácie. Kliknú na “Pokračovať” — a nevedomky autorizujú zmenu na ich skutočnom účte u vás.
-
Únos nastavení. Útočník zarámuje vašu stránku nastavení účtu a prekryje ju nevinnou hrou alebo prieskumom. Niekoľko kliknutí na správnych miestach ticho prepne nastavenie — pridanie záložnej e-mailovej adresy útočníka, udelenie povolenia aplikácii alebo zakázanie bezpečnostného upozornenia.
-
Obchod, ktorý viazne. Väčší zákazník pošle ich štandardný bezpečnostný dotazník pred podpisom. Jeden riadok sa pýta, či vaša stránka nastavuje anti-rámovú ochranu (X-Frame-Options / CSP frame-ancestors). Váš IT kontakt musí odpovedať “nie” a nákupný proces sa zastaví.
-
Kampaň s vašou značkou ako návnadou. Pretože vaše skutočné, dôveryhodné stránky môžu byť vložené, útočník používa vaše prihlásenie alebo pokladňu ako presvedčivú vrstvu v širšej phishingovej kampani.
-
Označenie auditu. Sken poisťovateľa alebo audítor kontrolujúci vašu bezpečnostnú situáciu uvádza chýbajúcu ochranu pred clickjackingom medzi nálezmi. Je to učebnicová položka základnej hygieny.
Čo to v skutočnosti je
Keď prehliadač požiada váš web o stránku, váš server posiela späť stránku plus niektoré neviditeľné “hlavičky” — extra inštrukcie, ktoré prehliadač číta. Ochrana pred clickjackingom je doručená prostredníctvom týchto hlavičiek. Existujú dve a naša kontrola prechádza, ak je prítomný ktorýkoľvek:
1. Staršia hlavička — X-Frame-Options:
X-Frame-Options: SAMEORIGIN
Toto má dve praktické hodnoty:
SAMEORIGIN— vaša vlastná stránka môže vkladať vlastné stránky, ale žiadna externá stránka nemôže. Bezpečné predvolené nastavenie pre takmer každého.DENY— nikto nemôže vkladať vaše stránky, vrátane vás. Použite toto len ak vaša stránka nikdy nerámuje vlastný obsah.
2. Moderná hlavička — Content-Security-Policy frame-ancestors:
Content-Security-Policy: frame-ancestors 'self';
Toto je novšia, flexibilnejšia kontrola:
frame-ancestors 'self'— ekvivalentSAMEORIGIN.frame-ancestors 'none'— ekvivalentDENY.frame-ancestors 'self' https://partner.priklad.com— vaša vlastná stránka plus jeden pomenovaný, dôveryhodný partner a nikto iný.
Ako vyzerá ‘dobré’
Najsilnejšie nastavenie používa oboje: frame-ancestors pre moderné prehliadače a X-Frame-Options: SAMEORIGIN ako zálohu pre staršie klienty. Naša kontrola je spokojná s ktorýmkoľvek z nich samotným — ale keďže oboje sú zadarmo a trvajú rovnaké niekoľko minút, nie je dôvod nenastaviť oboje.
Ako to opraviť (zadarmo, ~15 minút)
Odovzdajte túto sekciu tomu, kto spravuje váš web — vášmu IT pracovníkovi, webovému vývojárovi alebo podpore hostingu. Oprava je zadarmo. Je to jedna alebo dve hlavičky odpovede alebo pravidlo vo vašej CDN. Nie je nič na kúpenie.
Krok 1 — Rozhodnite sa, ako prísne byť
- Väčšina firiem:
SAMEORIGIN/frame-ancestors 'self'. Vaša vlastná stránka funguje; outsideri sú zablokovaní. - Ak vaša stránka nikdy nevkladá vlastné stránky:
DENY/frame-ancestors 'none'pre maximálne uzamknutie. - Ak skutočný partner musí vložiť konkrétnu stránku: menujte ich explicitne pomocou
frame-ancestors 'self' https://partner.priklad.com;.
Krok 2 — Pridajte hlavičky (vyberte si svoju platformu)
Nginx — vo vnútri vášho bloku server:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Content-Security-Policy "frame-ancestors 'self';" always;
Apache — uistite sa, že mod_headers je povolený, potom vo virtuálnom hostiteľovi:
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self';"
Microsoft IIS — v web.config vo vnútri <customHeaders>:
<add name="X-Frame-Options" value="SAMEORIGIN" />
<add name="Content-Security-Policy" value="frame-ancestors 'self';" />
Cloudflare (alebo podobná CDN): prejdite na Pravidlá → Transformovať pravidlá → Upraviť hlavičku odpovede a pridajte dve pravidlá.
Stavitelia webov (Squarespace, Wix, Shopify a podobné): tieto platformy často nastavujú anti-rámovú ochranu za vás, takže možno už prechádzate bez toho, aby ste čokoľvek museli robiť.
Krok 3 — Znovu načítajte a overte
Znovu načítajte webový server alebo nasaďte pravidlo CDN, potom načítajte svoju živú stránku a skontrolujte hlavičky odpovede — nástroje pre vývojárov prehliadača → záložka Sieť → kliknite na požiadavku stránky → Hlavičky odpovede. Potom znovu spustite kontrolu.
Bežné chyby
- Použitie iba hlásenia CSP a predpokladanie, že vás to chráni.
Content-Security-Policy-Report-Onlylen hlási porušenia — nič nevynucuje. Na ochranu potrebujete vynucujúcu hlavičku. - Nastavenie dvoch samostatných hlavičiek
Content-Security-Policy. Ak už máte CSP, pridajteframe-ancestorsdo neho namiesto vydávania druhej politiky; konfliktné CSP hlavičky môžu produkovať neočakávané správanie. - Nastavenie
DENY, keď vaša vlastná stránka vkladá vlastné stránky.DENYblokuje všetko rámovanie, vrátane vlastného. Ak akákoľvek časť vašej stránky používa iframey seba, použiteSAMEORIGIN/frame-ancestors 'self'namiesto toho. - Ochrana len domovskej stránky. Stránky, ktoré sa najviac počítajú pre clickjacking, sú prihlásené — nastavenia účtu, potvrdenie platby, administrácia. Uistite sa, že hlavičky sú aplikované na celej stránke.
- Predpokladanie, že HTTPS alebo zámok to pokrýva. Šifrovanie a anti-rámovanie nesúvisia. Dokonalý certifikát nič nerobí, aby zabránil vloženiu vašich stránok.
- Spoliehanie sa na staré obchodné triky. “Frame-busting” JavaScript (skripty, ktoré sa pokúšajú vykĺznuť z rámcov) je nespoľahlivý a môže byť obídený. Hlavičky sú správna, prehliadačom presadzovaná oprava.
FAQ
Nie som technicky zdatný — môžem to vyriešiť sám?
Nemusíte robiť technickú časť. Je to jedno nastavenie pridané na server vašej webovej stránky alebo vašu CDN a akýkoľvek webový vývojár alebo IT poskytovateľ to môže pridať za niekoľko minút. Odovzdajte im sekciu 'Ako to opraviť' nižšie — hovorí im presne, čo treba pridať. Oprava je zadarmo.
Zastaví to moju vlastnú stránku alebo legitímnych partnerov od zobrazovania mojich stránok?
Len ak to nastavíte príliš prísne. Bežné nastavenie ('SAMEORIGIN' alebo 'frame-ancestors self') stále umožňuje vašej vlastnej webovej stránke normálne vkladať vlastné stránky — blokuje len externé stránky. Ak legitímny partner potrebuje vložiť jednu konkrétnu stránku vašej stránky, váš vývojár môže povoliť tento jeden zdroj a stále blokovať všetkých ostatných.
Sme malá firma — naozaj by niekto cielil na nás?
Tieto útoky sú spúšťané vo veľkom automatizovanými nástrojmi, nie ručne vyberanými. Menšie stránky sú často zasiahnuté presne preto, že im chýba základná ochrana ako táto. Útočník nepotrebuje vedieť, kto ste — potrebuje len, aby bola vaša stránka vložiteľná. Uzatvorenie medzery vás nič nestojí.
Ako vyzerá 'dobré' nastavenie?
Buď hlavička X-Frame-Options nastavená na SAMEORIGIN (alebo DENY), alebo Content-Security-Policy s direktívou frame-ancestors — ideálne oboje. Naša kontrola prechádza, ak je prítomný ktorýkoľvek. Moderná, flexibilnejšia kontrola je frame-ancestors; X-Frame-Options je staršia hlavička, ktorá stále pokrýva niektoré staré prehliadače, takže nastavenie s opaskom aj podvazkami používa oboje.
Nie je toto to isté ako SSL zámok alebo HTTPS?
Nie — chránia pred úplne inými vecami. HTTPS šifruje pripojenie, aby ho nikto nemohol čítať pri prenose. Ochrana pred clickjackingom zabraňuje načítaniu vašich stránok vo vnútri stránky niekoho iného. Môžete mať dokonalý zámok a stále byť úplne otvorení pre clickjacking.
Ak to neopravíme, zníži to naše hodnotenie?
Áno. Toto je hodnotená kontrola webovej bezpečnosti, nie informatívna — chýbajúca hlavička stojí body a je hodnotená ako vysoká závažnosť, pretože priamo vystavuje vašich prihlásených zákazníkov podvodu.