Defaults.Exposed › Korjaukset › Klikkaushuijauksen suojaus (X-Frame-Options)
Kuinka korjata Klikkaushuijauksen suojaus (X-Frame-Options)
Yksirivi ohje, joka kertoo selaimille olla antamatta muiden verkkosivustojen ladata sivustoasi salaa omansa sisälle. Ilman sitä huijari voi piilottaa todelliset, kirjautuneet sivusi väärennetyn sivun taakse ja huijata asiakkaitasi klikkaamaan jotain, mitä he eivät koskaan tarkoittaneet – hyväksymään maksun, vaihtamaan salasanan, myöntämään pääsyn.
Lyhyesti liiketoiminnallesi: Petollinen toimija voi kietoa live-verkkosivustosi näkymättömästi väärennetyn sivun sisälle ja varastaa rahaa tai tilitietoja kirjautuneilta asiakkailtasi – ja asiakkaalle näyttää kuin sinun sivustosi teki sen. Korjaus on ilmainen ja vie kehittäjältä noin 15 minuuttia; jättäminen tekemättä on tunnettu aukko, jonka sekä rikolliset että varovaiset ostajat voivat havaita sekunneissa.
Mitä tämä voi maksaa sinulle
- Huijari piilottaa todellisen kirjautumis- tai maksusivusi harmittomalta näyttävän sivun taakse ja huijaa asiakasta 'vahvistamaan' siirron tai asetuksen muutoksen tajuamatta – asiakas syyttää sinua, ei hyökkääjää.
- Kirjautuneesta tilisi alueesta tulee näkyvä näkymättömästi 'Olet voittanut – klikkaa lunastaksesi' -sivun päällä; klikkaus hyväksyy oikeasti asiakkaan tilillä olevan muutoksen, ja sinä vastaat vihaisen asiakaspalvelupuhelun.
- Prospektin IT-tiimi suorittaa nopean tietoturvatarkistuksen ennen allekirjoittamista, näkee sivustosi voivan upottaa kenen tahansa toimesta ja merkitsee sen riskiksi, joka pysäyttää tai tappaa sopimuksen.
- Brändistäsi tulee syötti petoskampanjassa; huijatuksi joutuneet asiakkaat muistavat sen 'yrityksenä, jonka sivusto antoi sen tapahtua'.
- Auditoijan tai kyberturvallisuusvakuutuksen tarkistus listaa puuttuvan klikkaushuijauksen suojauksen perusturvallisuushygieniapuutteena – halpa korjata, hämmentävää, että se on merkitty.
Miksi tällä on merkitystä. Tämä on ilmainen, yhden rivin asetus, joka vie minuutteja lisätä, ja se sulkee koko luokan petoksia, jotka kohdistuvat kirjautuneisiin asiakkaisiisi. Pisteytyksessämme se on todellisten pisteiden arvoinen verkkotietoturvan tarkistus, joka luokitellaan korkean vakavuuden puutteeksi, koska puuttuva otsikko jättää tunnetun, helposti tarkistettavan aukon, jonka rikolliset automatisoivat ja ostajat etsivät.
Mitä tämä on selkokielellä
Kun joku vierailee verkkosivustollasi, heidän selaimensa voidaan myös käskeä lataamaan sivustosi toisen verkkosivuston sisään – kuten pieni ikkuna upotettuna suurempaan sivuun. Se kuulostaa harmittomalta, ja joskus se on sitä. Mutta se on mekanismi hyökkäyksen takana, jota kutsutaan klikkaushuijaukseksi.
Tässä on temppu. Huijari rakentaa oman sivunsa ja lataa hiljaa oikean verkkosivustosi sen sisälle – näkymättömästi, täysin läpinäkyväksi tehtyä. Sitten he asettavat oman sisältönsä päälle: välähtävä nappi, “Toista video”, “Lunasta palkintosi”. Asiakkaasi näkee hyökkääjän sivun ja klikkaa siltä näyttävää harmitonta nappia. Mutta koska oikea sivustosi istuu heidän kursorinsa alla näkymättömänä, klikkaus laskeutuu sinun sivullesi – vahvistaen maksun, vaihtaen salasanan, hyväksyen pääsyn, hyväksyen luvan. Asiakas luulee klikkanneensa yhtä asiaa; he todella klikkasivat toista, sivustolle, johon he luottavat.
Klikkaushuijauksen suojaus on lyhyt, näkymätön ohje, jonka verkkosivustosi lähettää jokaisen kävijän selaimelle, joka sanoo käytännössä:
“Älä anna muiden verkkosivustojen ladata minua sisälleen. Jos joku yrittää, kieltäydy.”
Nykyaikaiset selaimet tottelevat tätä automaattisesti. Sen kytkeytyessä päälle temppu yksinkertaisesti ei toimi – sivustosi upotettu kopio kieltäytyy latautumasta. Ilman sitä sivustosi on vapaa pelata näkymättömänä kerroksena huijauksessa, ja huijattu asiakas yhdistää koko asian brändiisi, ei hyökkääjän.
Mitä tämä voi maksaa yrityksellesi
Nämä ovat realistisia, arkipäiväisiä skenaarioita. Emme nimeä oikeita yrityksiä; nämä ovat havainnollistuksia siitä, miten aukkoa käytetään.
-
Näkymätön “vahvistus.” Asiakas on kirjautunut tiliportaaliisi yhdessä välilehdessä. He päätyvät sivulle (mainoksesta, sähköpostista, hakutuloksesta), joka lupaa jotain houkuttelevaa ja näyttää suuren “Jatka”-napin. Kyseisen napin takana piilotettuna on todellinen “Vahvista siirto” tai “Vaihda sähköposti” -kontrolli, ladattuna heidän omalta kirjautuneesta istunnostaan. He klikkaavat “Jatka” – ja tietämättään valtuuttavat muutoksen todelliselle tilillensä sinulle. Heille ja tukitiimillesi näyttää kuin he tekivät sen sinun sivustollasi.
-
Asetusten kaappaus. Hyökkääjä kehystää tili-asetussivusi ja päällystää sen harmittomalla pelillä tai kyselyllä. Muutama klikkaus oikeissa kohdissa kääntää hiljaa asetuksen – lisää hyökkääjän sähköpostin palautusosoitteeksi, myöntää sovellukselle luvan tai poistaa tietoturvahälytyksen käytöstä. Tili on nyt hiljaa vaarantunut, eikä sillä hetkellä mikään näyttänyt väärältä.
-
Pysähtynyt sopimus. Suurempi asiakas lähettää vakiotietoturvakyselylomakkeen ennen allekirjoittamista. Yksi rivi kysyy, asettaako sivustosi kehystyssuojauksen (X-Frame-Options / CSP frame-ancestors). IT-yhteyshenkilösi joutuu vastaamaan “ei”, ja hankinta pysähtyy, kun sinä kiirehdät korjaamaan ilmaisen, 15 minuutin asetuksen, joka nyt näyttää punaiselta lipulta ostajan edessä.
-
Brändi-syöttikampanja. Koska todelliset, luotetut sivusi voidaan upottaa, hyökkääjä käyttää sinun kirjautumistasi tai kassaasi vakuuttavana kerroksena laajemmassa kalastelukampanjassa. Huijatuksi joutuneet asiakkaat eivät syytä hämärää hyökkääjää – he muistavat sen kertana, jolloin “sinun sivustosi” antoi heidän huijata.
-
Auditointimerkintä. Vakuuttajan tarkistus tai tietoturvatarkastus listaa puuttuvan klikkaushuijauksen suojauksen löydösten joukossa. Se on oppikirjamallinen perusturvallisuushygieniakohde; sen merkitseminen kertoo, että helpot, ilmaiset suojaukset eivät olleet paikallaan – mikä värjää sitä, miten muuta tietoturvaasi arvioidaan.
Punainen lanka: vahinko koituu todelliselle, kirjautuneelle asiakkaalle, joka tekee jotain, mitä he eivät tarkoittaneet – ja se kantaa nimeäsi, ei hyökkääjän.
Mitä se oikeasti on
Kun selain pyytää verkkosivustoltasi sivua, palvelimesi lähettää takaisin sivun sekä joitakin näkymättömiä “otsikoita” – ylimääräisiä ohjeita, jotka selain lukee, mutta kävijä ei koskaan näe. Klikkaushuijauksen suojaus toimitetaan näiden otsikoiden kautta. Niitä on kaksi, ja tarkistuksemme läpäisee, jos kumpi tahansa on läsnä:
1. Vanhempi otsikko – X-Frame-Options:
X-Frame-Options: SAMEORIGIN
Tämä on pitkäaikainen, laajasti tuettu hallinta. Se ottaa yhden kahdesta käytännön arvosta:
SAMEORIGIN– oma sivustosi saa upottaa omat sivunsa, mutta ulkoiset sivustot eivät. Turvallinen oletus lähes kaikille.DENY– kukaan ei saa upottaa sivujasi, et sinäkään itse. Käytä tätä vain, jos sivustosi ei koskaan kehystä omaa sisältöään.
2. Nykyaikainen otsikko – Content-Security-Policy frame-ancestors:
Content-Security-Policy: frame-ancestors 'self';
Tämä on uudempi, joustavampi hallinta, johon nykyiset standardit viittaavat. Se tekee saman työn, mutta antaa olla tarkka siitä, kuka saa upottaa sinut:
frame-ancestors 'self'– vastaaSAMEORIGIN:a.frame-ancestors 'none'– vastaaDENY:tä.frame-ancestors 'self' https://kumppani.esimerkki.fi– oma sivustosi plus yksi nimetty, luotettu kumppani, ja ei kukaan muu.
Miltä “hyvä” näyttää
Vahvin asetus käyttää molempia: frame-ancestors nykyaikaisille selaimille (ja tarkkuuden vuoksi nimettyjen sallittujen upottajien nimisessä) ja X-Frame-Options: SAMEORIGIN vanhempien asiakkaiden varauksena. Tarkistuksemme hyväksyy kumman tahansa yksinään – mutta koska molemmat ovat ilmaisia ja vievät saman muutaman minuutin, ei ole syytä olla asettamatta molempia.
Yksi tärkeä yksityiskohta kehittäjäsi pitää tietää: Content-Security-Policy-Report-Only -otsikko ei pakota mitään – se vain raportoi. Jos haluat klikkaushuijauksen suojauksen todella toimivan, sen täytyy tulla pakottavasta otsikosta (normaali Content-Security-Policy frame-ancestors-direktiivillä tai X-Frame-Options), ei vain-raportointi-otsikosta.
Korjausohje (ilmainen, n. 15 minuuttia)
Anna tämä osio verkkosivustoasi hallinnoivalle – IT-henkilöllesi, webkehittäjällesi tai hosting-tuelle. Korjaus on ilmainen. Se on yksi tai kaksi vastaustahoa tai sääntö CDN:ssäsi. Ei mitään ostettavaa.
Tarkistus läpäisee, kun joko X-Frame-Options-otsikko (asetettu DENY tai SAMEORIGIN) tai CSP frame-ancestors-direktiivi on läsnä. Suositeltava hakasesalpa-asetus lisää molemmat.
Vaihe 1 – Päätä, kuinka tiukka asetus
- Useimmat yritykset:
SAMEORIGIN/frame-ancestors 'self'. Oma sivustosi jatkaa toimintaansa; ulkopuoliset estetään. - Jos sivustosi ei koskaan upota omia sivujaan:
DENY/frame-ancestors 'none'maksimilukitukseen. - Jos aidon kumppanin täytyy upottaa tietty sivu: nimeä heidät eksplisiittisesti
frame-ancestors 'self' https://kumppani.esimerkki.fi;:llä eikä kukaan muu pääse sisään.
Vaihe 2 – Lisää otsikot (valitse alustasi)
Nginx – server-lohkosi sisälle:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Content-Security-Policy "frame-ancestors 'self';" always;
Apache – varmista mod_headers käytössä, sitten virtuaali-isäntäsi:
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self';"
Microsoft IIS – web.config:issa <customHeaders>:n sisällä:
<add name="X-Frame-Options" value="SAMEORIGIN" />
<add name="Content-Security-Policy" value="frame-ancestors 'self';" />
Cloudflare (tai vastaava CDN): siirry kohtaan Säännöt → Muuntosäännöt → Muokkaa vastaustahojen otsikkoa ja lisää kaksi sääntöä, jotka asettavat X-Frame-Options-arvoksi SAMEORIGIN ja Content-Security-Policy-arvoksi frame-ancestors 'self'; kaikille vastauksille. Tämä on helpoin reitti, jos sinulla ei ole suoraa palvelinpääsyä.
Lähetätkö jo Content-Security-Policy:n muista syistä? Älä luo toista CSP-otsikkoa – lisää frame-ancestors olemassa olevaan politiikkaasi. Kaksi CSP-otsikkoa voi olla ristiriidassa.
Sivustonrakentajat (Squarespace, Wix, Shopify ja vastaavat): nämä alustat asettavat usein anti-kehystyssuojauksen puolestasi, joten saatat jo läpäistä ilman mitään tekemistä. Jos tarkistuksemme merkitsee ongelman, hallinta on yleensä alustan tietoturva-asetuksissa tai lisäät sen sivuston edessä olevaan CDN:ään. (Huomio: Google Workspace ja Microsoft 365 tehostavat sähköpostiasi, ei verkkosivustoasi – tämä otsikko asetetaan missä julkinen sivustosi todella sijaitsee, ei Workspacen/365:n hallinnassa.)
Vaihe 3 – Lataa uudelleen ja vahvista
Lataa verkkopalvelin tai ota CDN-sääntö käyttöön, sitten lataa live-sivustosi ja tarkista vastaustahot – selaimen kehittäjätyökalut → Verkko-välilehti → klikkaa sivupyyntöä → Vastaustahot, tai mikä tahansa ilmainen otsikontarkistustyökalu. Vahvista, että otsikot näkyvät todellisissa sivuvastauksissa, ei vain etusivussa. Sitten suorita tarkistus uudelleen.
Yleisimmät virheet
- Vain-raportointi CSP:n käyttäminen ja suojelevuuden olettaminen.
Content-Security-Policy-Report-Onlyvain raportoi rikkomuksista – se ei pakota mitään. Tarvitset pakottavan otsikon suojan toimiakseen. - Kahden erillisen
Content-Security-Policy-otsikon asettaminen. Jos sinulla on jo CSP, lisääframe-ancestorssiihen sen sijaan, että lähetät toisen politiikan; ristiriitaiset CSP-otsikot voivat aiheuttaa odottamatonta käytöstä. DENY:n asettaminen, kun sivustosi upottaa omia sivujaan.DENYestää kaiken kehystämisen, mukaan lukien omasi. Jos sivustosi käyttää iframeja itsensä sisällä, käytäSAMEORIGIN/frame-ancestors 'self'sen sijaan tai rikot omat sivusi.- Vain etusivun suojaaminen. Sivut, joilla on eniten merkitystä klikkaushuijaukselle, ovat kirjautuneet – tili-asetukset, maksuvahvistus, hallinta. Varmista, että otsikot ovat sivustolaajuisesti, ei vain etusivulla.
- HTTPS:n tai lukon olettaminen jo kattavan tämän. Salaus ja kehystämisenestäminen ovat toisiinsa liittymättömiä. Täydellinen sertifikaatti ei tee mitään estääkseen sivujasi upottamista.
- Vanhoihin kiertotöihin luottaminen. “Kehysohjaava” JavaScript (skriptit, jotka yrittävät paeta kehyksistä) on epäluotettavaa ja se voidaan ohittaa. Otsikot ovat oikea, selainpakotteinen korjaus.
UKK
En ole tekninen – voiko tämän hoitaa itse?
Teknistä osaa ei tarvitse tehdä. Se on yksittäinen asetus lisätty verkkosivustosi palvelimeen tai CDN:ään, ja kaikki webkehittäjä tai IT-palveluntarjoaja voi lisätä sen muutamassa minuutissa. Anna heille alla oleva 'Korjausohje' – se kertoo tarkalleen, mitä lisätä. Korjaus on ilmainen; veloitamme vain jos haluaisit meidän seurata sen paikallaan pysymistä.
Pysäyttääkö tämä oman sivustoni tai lailliset kumppanit näyttämästä sivujani?
Vain jos asetat sen liian tiukasti. Yleinen asetus ('SAMEORIGIN' tai 'frame-ancestors self') antaa silti omalle verkkosivustollesi upottaa omat sivunsa normaalisti – se estää vain ulkoiset sivustot. Jos aito kumppani tarvitsee upottaa yhden tietyn sivusi, kehittäjäsi voi sallia kyseisen yksittäisen lähteen samalla kun estää kaikki muut.
Olemme pienyritys – kukaan ei todella kohdistune meihin?
Nämä hyökkäykset ajetaan massana automaattisilla työkaluilla, ei käsinvalittuna. Pienemmät sivustot osutaan usein täsmälleen siksi, koska niiltä puuttuu tällainen perussuojaus. Hyökkääjän ei tarvitse tietää kuka olet – he vain tarvitsevat sivustosi olevan upotettavissa. Aukon sulkeminen ei maksa sinulle mitään.
Miltä 'hyvä' näyttää?
Joko X-Frame-Options-otsikko asetettuna SAMEORIGIN (tai DENY), tai Content-Security-Policy:ssä frame-ancestors-direktiivi – mieluiten molemmat. Tarkistuksemme läpäisee, jos kumpi tahansa on läsnä. Nykyaikaisempi, joustavampi hallinta on frame-ancestors; X-Frame-Options on vanhempi otsikko, joka kattaa edelleen joitain vanhoja selaimia, joten hakasesalpa-asetus käyttää molempia.
Eikö tämä ole sama kuin SSL-lukko tai HTTPS?
Ei – ne suojaavat täysin eri asioita. HTTPS salaa yhteyden, jotta kukaan ei pysty lukemaan sitä matkalla. Klikkaushuijauksen suojaus estää sivujasi latautumasta jonkun muun sivustoon lainkaan. Sinulla voi olla täydellinen lukko ja silti olla avoin klikkaushuijaukselle. Ne ovat erillisiä tarkistuksia ja haluat molemmat.
Jos emme korjaa tätä, laskeeko se arviotamme?
Kyllä. Tämä on pisteytetty verkkotietoturvan tarkistus, ei tiedoksi annettava – puuttuva otsikko maksaa pisteitä ja luokitellaan korkean vakavuuden puutteena, koska se altistaa suoraan kirjautuneet asiakkaasi petokselle. Se on myös yksi halvimmista pisteistä palauttaa: yksittäinen ilmainen otsikko, noin 15 minuuttia kehittäjän aikaa.