Siirry suoraan sisältöön

Evästeasetukset

Valitse, mitä evästetyyppejä sallit. Voit muuttaa valintaasi milloin tahansa jokaisen sivun alareunassa olevasta kohdasta Evästeasetukset. Tietosuojaseloste

Välttämättömät

Aina käytössä

Tarvitaan sisäänkirjautumiseen, ostoskorin säilyttämiseen ja valintojesi muistamiseen. Nämä ovat aina käytössä.

Mitkä evästeet?
  • weboke_sessie, weboke_klant, weboke_remember: istuntosi ja sisäänkirjautuneena pysyminen
  • weboke_basket: ostoskorisi
  • wkBtwIncl: hintojen näyttäminen verollisina tai verottomina
  • wok_cookies: evästevalintasi, 12 kuukautta

Mittaa, mikä mainos johtaa käyntiin tai tilaukseen, jotta emme maksa mainoksista, joista ei ole hyötyä.

Mitkä evästeet?
  • Google Ads Google Tag Managerin kautta (_gcl_au, _gcl_aw), enintään 90 päivää
  • OpenAI Ads, mainokset ChatGPT-palvelussa
  • wok_aff: minkä kumppanin kautta tulit meille (kumppaniohjelma), 60 päivää

4,6

Maa ja kieli

Jokaisella maalla on oma sivustonsa, jossa on kyseisen maan hinnat ja ALV.

Näytä

Verkkosivustosi: https, HSTS ja suojausotsikot

Moduuli 4: Sähköposti, verkkosivusto ja verkkotunnus · Lukuaika: 11 minuuttia

Tavoite: Tämän oppitunnin jälkeen osaat tarkistaa verkkosivustosi perussuojauksen: voimassa olevan varmenteen, uudelleenohjauksen https-osoitteeseen, HSTS:n sopivalla max-age-arvolla, tärkeimmät suojausotsikot ja CMS:n päivittämisen.
Keskeiset käsitteet: TLS-varmenne, https, uudelleenohjaus https-osoitteeseen, HSTS, max-age, includeSubDomains, preload, HTTP-otsikko, Content-Security-Policy, X-Content-Type-Options, frame-ancestors, X-Frame-Options, Referrer-Policy

Mitä tapahtuu, kun joku avaa sivustosi

Kun asiakas kirjoittaa osoiteriville example.com, selain pyytää sivua verkkopalvelimeltasi. Tämä keskustelu käydään HTTP:n kautta. Https-yhteydessä sen ympärillä on salattu yhteys: TLS. Tätä varten verkkosivustosi tarvitsee TLS-varmenteen (kutsutaan usein edelleen SSL-varmenteeksi). Varmenne todistaa, että palvelin todella kuuluu osoitteeseen example.com, ja salaus varmistaa, ettei kukaan voi lukea tai muuttaa liikennettä matkan varrella. Tämä on tärkeää julkisessa wifissä, jossa et tiedä kuka verkkoa hallinnoi (oppitunti 5.3).

Jokaisen vastauksen mukana palvelin lähettää varsinaisen sivun lisäksi joukon otsikoita (headers): lyhyitä rivejä, jotka sisältävät tietoa ja ohjeita selaimelle. Et näe niitä ruudulla, mutta ne määräävät suurelta osin, kuinka turvallisesti selain käsittelee sivustoasi. Osa näistä otsikoista on suojausotsikoita. Tällä oppitunnilla käymme läpi neljä tasoa: varmenne, uudelleenohjaus, HSTS ja otsikot. Lopuksi tarkastelemme lyhyesti verkkosivustosi itsensä päivittämistä.

Taso 1: voimassa oleva varmenne

Varmenne on kunnossa, kun se täyttää kolme ehtoa:

  1. se ei ole vanhentunut;
  2. sen on myöntänyt luotettu myöntäjä (varmenneviranomainen, jonka selaimet tuntevat, kuten Let's Encrypt tai kaupallinen toimija);
  3. se kattaa täsmälleen sen nimen, jonka kävijä avaa: example.com ja www.example.com, jos käytät molempia.

Lähes jokainen webhotelli hoitaa nykyään ilmaisen varmenteen, joka uusiutuu automaattisesti. Jos jotain menee pieleen, syynä on yleensä se, että verkkotunnus osoittaa toiselle palvelimelle, tai että CAA-tietue estää myöntäjän (oppitunti 4.3).

Tärkeä asia: lukon kuva ei kerro mitään luotettavuudesta. Se kertoo vain, että yhteys on salattu ja että varmenne vastaa osoiterivillä näkyvää nimeä. Myös huijaussivustoilla osoitteessa mijnbank-veilig.example on lukon kuva. Siksi opit oppitunnilla 3.2 lukemaan verkkotunnuksia.

Taso 2: aina uudelleenohjaus https-osoitteeseen

Pelkkä varmenne ei riitä. Kun joku avaa osoitteen http://example.com, esimerkiksi vanhan linkin kautta tai kirjoittamalla vain nimen, hänet pitää ohjata automaattisesti https-versioon. Tätä kutsutaan uudelleenohjaukseksi (redirect, yleensä tilakoodilla 301).

Hyvä järjestys on:

http://example.com      ->  https://example.com
https://example.com     ->  https://www.example.com   (vain jos käytät www-muotoa pääosoitteena)
http://www.example.com  ->  https://www.example.com

Huomaa ensimmäinen rivi: ohjaa http ensin https-osoitteeseen samalla nimellä, vasta sen jälkeen tarvittaessa www-muotoon. Näin selain voi vastaanottaa myös paljaan nimen HSTS-ohjeen. Internet.nl tarkistaa juuri tämän.

Yleinen virhe on kaksinkertainen uudelleenohjaus: sekä webhotellin hallintapaneelissa että lisäosassa tai tiedostossa .htaccess. Tämä voi aiheuttaa loputtoman silmukan ("liian monta uudelleenohjausta"). Käytä vain yhtä paikkaa.

Taso 3: HSTS

Uudelleenohjauksessa on heikko hetki: aivan ensimmäinen pyyntö kulkee vielä salaamattomana http:n kautta. Samassa verkossa oleva hyökkääjä voi siepata juuri tuon pyynnön ja pitää kävijän väärennetyllä, salaamattomalla versiolla. Tätä varten on HSTS (HTTP Strict Transport Security, RFC 6797).

HSTS:n avulla sivustosi lähettää https:n kautta otsikon:

Strict-Transport-Security: max-age=31536000; includeSubDomains

Selain muistaa tällöin: "avaa tämä sivusto vain https:n kautta, seuraavat 31 536 000 sekuntia (vuoden ajan)". Jos kävijä kirjoittaa myöhemmin http://example.com, selain muuttaa sen itse https-muotoon jo ennen kuin mitään lähtee verkkoon. Heikko ensimmäinen pyyntö jää pois.

OsaMerkitys
max-age=Kuinka kauan selain muistaa tämän, sekunteina. Internet.nl pitää vähintään vuotta (max-age=31536000) riittävänä; lyhyt ajanjakso ei suojaa kävijöitä, jotka vierailevat sivustollasi vain harvoin.
includeSubDomainsKoskee myös kaikkia alitunnuksia, kuten shop.example.com ja mail.example.com.
preloadPyydät pääsyä listalle, joka on sisäänrakennettu selaimiin (hstspreload.org). Silloin jopa aivan ensimmäinen vierailu on suojattu. Vaatimuksiin kuuluu muun muassa max-age, joka on vähintään vuosi, includeSubDomains ja kaikki alitunnukset https:ssä. Listalta pois pääseminen kestää kauan.
max-age=0Poistaa muistetun ohjeen.

Kolme asiaa, jotka kannattaa tietää ennen HSTS:n käyttöönottoa:

  • Https:n on ensin toimittava kaikkialla. Selain, joka on muistanut HSTS:n ja kohtaa varmennevirheen, ei anna kävijälle mitään painiketta jatkaa silti eteenpäin (RFC 6797, kohta 12.1). Jos varmenteesi vanhenee tai se ei kata www-osoitetta oikein, sivustosi on näiden kävijöiden ulottumattomissa, kunnes asia on korjattu.
  • includeSubDomains vaikuttaa kaikkeen verkkotunnuksesi alla. Vanha alitunnus ilman varmennetta, esimerkiksi tulostimen tai kameran sivu osoitteessa camera.example.com, ei ole sen jälkeen enää avattavissa.
  • Rakenna se vaiheittain. Aloita lyhyellä max-age-arvolla (esimerkiksi yksi päivä), tarkista että kaikki toimii, ja nosta arvoa vaiheittain vuoteen asti. Odota jokaisessa vaiheessa koko ajanjakson verran.

Selain jättää huomiotta HSTS-otsikon, joka saapuu tavallisen http:n kautta. Näet sen siis vain https-vastauksessa.

Taso 4: suojausotsikot

HSTS:n lisäksi on muutama otsikko, jotka kertovat selaimelle mitä se saa ja ei saa tehdä sivujesi kanssa. Sinun ei tarvitse saada niitä kaikkia täydellisiksi, mutta kolme ensimmäistä ovat yksinkertaisia ja riskittömiä.

OtsikkoMitä vastaanHyvä arvo
X-Content-Type-OptionsSelain alkaa itse arvailla, mikä tiedosto on, jolloin ladattu "kuva" voidaan suorittaa skriptinä.nosniff (ainoa kelvollinen arvo)
Content-Security-Policy: frame-ancestors ... tai X-Frame-OptionsClickjacking: toinen sivusto lataa sivusi näkymättömästi kehykseen ja saa kävijät klikkaamaan sivustosi painikkeita huomaamattaan.frame-ancestors 'self' tai 'none'; vanhempi otsikko X-Frame-Options: SAMEORIGIN tai DENY
Referrer-PolicyKun kävijä klikkaa linkkiä toiselle sivustolle, selain lähettää mukana edellisen sivun osoitteen. Siinä voi olla arkaluonteista tietoa, kuten hakusana tai tilausnumero.no-referrer tai same-origin (tiukka), strict-origin-when-cross-origin (yleinen, internet.nl antaa tästä varoituksen)
Content-Security-Policy (täydellinen)Rajoittaa, mistä paikoista skriptit, tyylit ja kuvat saavat latautua. Tekee haitallisten lisättyjen skriptien (XSS) käytöstä paljon vaikeampaa.Räätälöinti sivustokohtaisesti. Vältä arvoja unsafe-inline, unsafe-eval ja jokerimerkkejä.

Täydellinen Content-Security-Policy on tehokkain, mutta myös vaikein: liian tiukka sääntö voi rikkoa tilastointisi, maksupainikkeesi tai chat-ikkunasi. Muunnoksella Content-Security-Policy-Report-Only voit ensin mitata, mitä estettäisiin, rikkomatta mitään. Jätä tämä verkkosivustosi tekijän hoidettavaksi, tai aloita vain frame-ancestors-säännöstä.

Otsikoiden tarkistaminen itse

Avaa sivustosi selaimessa, paina F12 (tai valitse "Tarkista"), siirry välilehdelle Verkko (Network), lataa sivu uudelleen ja klikkaa ensimmäistä pyyntöä. Kohdasta "Vastausotsikot" (Response Headers) näet kaiken, mitä palvelin lähettää mukana. Tämän voi tehdä myös komentorivillä:

curl -sI https://example.com/

Verkkosivusto itse: CMS, lisäosat ja teemat

Parhaatkaan otsikot eivät auta, jos sivustosi taustalla oleva ohjelmisto on haavoittuva. Useimmat pienyritysten hakkeroidut sivustot eivät ole murtuneet verkkopalvelimen kautta, vaan vanhentuneen lisäosan, jo vuosia päivittämättömän teeman tai heikon ylläpitäjän salasanan kautta.

  • Ota käyttöön automaattiset päivitykset CMS:llesi (esimerkiksi WordPress, Joomla tai muu järjestelmä) ja lisäosille, kun se on mahdollista.
  • Poista lisäosat ja teemat, joita et käytä; pelkkä käytöstä poistaminen ei riitä, tiedostot ovat edelleen tallessa.
  • Käytä ylläpitäjän kirjautumiseen vahvaa, yksilöllistä salasanaa ja kaksivaiheista tunnistautumista (moduuli 2), ja rajoita kirjautumisyritysten määrää.
  • Pidä pakettisi PHP-versio (tai muu kieli) sellaisena, joka saa vielä päivityksiä (oppitunti 5.1).

Käytännössä: näin se näyttää

DirectAdmin-paneelissa, jota WebOké käyttää, otat verkkotunnuksesi kohdalla ensin käyttöön Beveiligde SSL verbinding ja sen jälkeen Forceer SSL met https omleiding. Samassa paikassa on kytkin HSTS:lle; ota se käyttöön vasta kun varmenne toimii kaikilla nimillä. Muilla palveluntarjoajilla toiminta on vastaavaa, tai voit hoitaa sen CMS:si asetuksista.

Jos sivustosi toimii Apachella tai LiteSpeedillä, voit asettaa otsikot myös tiedostoon .htaccess:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Content-Security-Policy "frame-ancestors 'self'"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Lisää includeSubDomains vasta, kun olet varma, että jokaisella alitunnuksella on https käytössä. Tarkista jokaisen muutoksen jälkeen internet.nl:n verkkosivustotestillä tai selaimesi kehittäjätyökaluilla.

Yhteenveto

  • Lukon kuva tarkoittaa: salattu ja oikea nimi. Se ei tarkoita: luotettava.
  • Ohjaa http aina uudelleen https-osoitteeseen, ensin samalla nimellä, ja vain yhdessä paikassa.
  • HSTS saa selaimen muistamaan, että sivustosi toimii vain https:n kautta; internet.nl pitää max-age-arvoa, joka on vähintään vuosi (31536000), hyvänä. Ota se käyttöön vasta kun https toimii kaikkialla, ja rakenna se vaiheittain.
  • X-Content-Type-Options: nosniff, frame-ancestors (tai X-Frame-Options) ja Referrer-Policy ovat yksinkertaisia; täydellinen Content-Security-Policy on räätälöitävä.
  • CMS:n, lisäosien ja teemojen päivitykset ovat vähintään yhtä tärkeitä kuin otsikot.

Tietovisa (quiz)

1. Mitä HSTS tarkalleen ottaen estää?



2. Otat käyttöön asetuksen Strict-Transport-Security: max-age=31536000; includeSubDomains. Viikkoa myöhemmin verkkotunnuksen shop.example.com varmenne vanhenee. Mitä vakikävijät huomaavat?



3. Minkä max-age-arvon internet.nl pitää vähintään riittävänä HSTS:lle?



4. Mitä vastaan Content-Security-Policy: frame-ancestors 'self' suojaa?



5. Näet lukon kuvan osoitteessa mijnbank-veilig.example osoiterivillä. Minkä tiedät sen perusteella varmasti?



Tehtävä

Tehtävä A4.2: Https, HSTS ja verkkosivustosi otsikkotietojen tarkistus. Syötä verkkosivustosi verkkotunnus (jos sinulla ei ole sellaista, käytä osoitetta internet.nl). Ohjelma avaa verkkotunnuksesi http://- ja https://-osoitteet ja tarkistaa varmenteen, uudelleenohjauksen https-osoitteeseen, HSTS:n ja suojausotsikot. Saat jokaisesta kohdasta vihreän, oranssin tai punaisen arvion selityksineen.

Tehtävä A4.2: Https, HSTS ja verkkosivustosi otsikkotietojen tarkistus

Syötä verkkosivustosi verkkotunnus (jos sinulla ei ole omaa, käytä internet.nl). Ohjelma avaa domainisi http:// ja https:// osoitteet ja tarkistaa varmenteen, uudelleenohjauksen https-protokollaan, HSTS:n ja tietoturvaotsikot. Syötä sen jälkeen HSTS:n max-age-arvo.



Sitä, mitä kirjoitat ja mitä löydämme, ei tallenneta. Selaimesi muistaa vastauksesi ja sen, oletko suorittanut tehtävän. Jos olet kirjautunut sisään, tallennamme kohtaan Omat kurssit vain sen, että tehtävä oli (lähes) oikein; voit poistaa sen myös sieltä.

Tehtävä D4.2: Verkkosivustosi päivittäminen ja siivoaminen. Kirjaudu sisään verkkosivustosi hallintaan, tarkista CMS:n, lisäosien ja teemojen versio, poista mitä et käytä ja ota käyttöön automaattiset päivitykset, kun se on mahdollista. Merkitse tarkistuslista tehdyksi ja vastaa pohdintakysymykseen.

Tehtävä D4.2: Verkkosivustosi päivittäminen ja siivoaminen

Näin toimit: (1) Kirjaudu verkkosivustosi hallintaan (tai pyydä verkkosivujen tekijää tekemään tämä yhdessä kanssasi). (2) Kirjaa ylös CMS:n versio ja tarkista, onko päivityksiä saatavilla. (3) Ota varmuuskopio (oppitunti 6.1), asenna CMS:n, lisäosien ja teemojen päivitykset. (4) Poista lisäosat ja teemat, joita et käytä. (5) Ota automaattiset päivitykset käyttöön, mikäli mahdollista. (6) Tarkista, mitä ylläpitäjätilejä on olemassa, ja poista tilit, jotka kuuluvat henkilöille, jotka eivät enää työskentele yrityksessä. (7) Ota kaksivaiheinen tunnistautuminen käyttöön jokaiselle ylläpitäjätilille.




Merkintäsi ja muistiinpanosi pysyvät vain tässä selaimessa, emme lähetä niitä minnekään. Jos olet kirjautunut sisään, tallennamme kohtaan Omat kurssit vain sen, että olet tehnyt tehtävän.

Lue lisää

WebOkén ohjeartikkeleiden vaiheet pätevät WebOkén ympäristössä; muilla palveluntarjoajilla toiminta on vastaavaa.

Hetkinen…

Määritä verkkotunnuksesi

Määritä kullekin verkkotunnukselle nimipalvelimet, liitos webhotelliin ja se, kuka tulee omistajaksi.

Ladataan verkkotunnuksia…