Gå direkte til indholdet

Cookieindstillinger

Vælg for hver type, hvilke cookies du tillader. Du kan altid ændre dit valg via Cookieindstillinger nederst på hver side. Privatlivspolitik

Nødvendige

Altid slået til

Nødvendige for at logge ind, gemme din kurv og huske dine valg. De er altid slået til.

Hvilke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session og at forblive logget ind
  • weboke_basket: din kurv
  • wkBtwIncl: vise priser med eller uden moms
  • wok_cookies: dit cookievalg, 12 måneder

Måler, hvilken annonce der fører til et besøg eller en bestilling, så vi ikke betaler for annoncer, der ikke virker.

Hvilke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), op til 90 dage
  • OpenAI Ads, annoncer i ChatGPT
  • wok_aff: hvilken partner der henviste dig til os (affiliateprogram), 60 dage

4,6

Land og sprog

Hvert land har sin egen side med landets priser og moms.

Se

Din hjemmeside: https, HSTS og sikkerhedsheadere

Modul 4: E-mail, website og domæne · Læsetid: 11 minutter

Læringsmål: Efter denne lektion kan du kontrollere grundsikkerheden på din hjemmeside: et gyldigt certifikat, omdirigering til https, HSTS med en god max-age, de vigtigste sikkerhedsheadere og opdatering af dit CMS.
Nøglebegreber: TLS-certifikat, https, omdirigering til https, HSTS, max-age, includeSubDomains, preload, HTTP-header, Content-Security-Policy, X-Content-Type-Options, frame-ancestors, X-Frame-Options, Referrer-Policy

Hvad der sker, når nogen åbner din side

Hvis en kunde skriver example.com i adresselinjen, beder browseren din webserver om siden. Den samtale foregår via HTTP. Ved https er der en krypteret forbindelse omkring: TLS. Dertil skal din hjemmeside bruge et TLS-certifikat (ofte stadig kaldet SSL-certifikat). Certifikatet beviser, at serveren virkelig hører til example.com, og krypteringen sikrer, at ingen undervejs kan læse med eller ændre noget. Det er vigtigt på offentlig wifi, hvor du ikke ved, hvem der administrerer netværket (lektion 5.3).

Ved hvert svar sender serveren, ud over selve siden, en række headere med: korte linjer med information og instruktioner til browseren. Du ser dem ikke på skærmen, men de bestemmer i høj grad, hvor sikkert browseren håndterer din side. En del af disse headere er sikkerhedsheadere. I denne lektion gennemgår vi de fire lag: certifikat, omdirigering, HSTS og headere. Bagefter ser vi kort på opdatering af selve din hjemmeside.

Lag 1: et gyldigt certifikat

Et certifikat er i orden, hvis det opfylder tre betingelser:

  1. det er ikke udløbet;
  2. det er udstedt af en betroet udsteder (en certifikatautoritet, som browserne kender, f.eks. Let's Encrypt eller en kommerciel udbyder);
  3. det gælder for præcis det navn, som besøgende åbner: example.com og www.example.com, hvis du bruger begge.

Næsten alle hostingudbydere ordner i dag et gratis certifikat, som bliver fornyet automatisk. Går det galt, skyldes det som regel, at domænenavnet peger på en anden server, eller at en CAA-record blokerer udstederen (lektion 4.3).

Vigtigt at vide: en hængelås siger ingenting om, hvor troværdig siden er. Den siger kun, at forbindelsen er krypteret, og at certifikatet hører til navnet i adresselinjen. Phishingsider på mijnbank-veilig.example har lige så godt en hængelås. Derfor lærer du i lektion 3.2 at læse domænet.

Lag 2: altid omdirigering til https

Et certifikat alene er ikke nok. Hvis nogen åbner http://example.com, f.eks. via et gammelt link eller ved kun at skrive navnet, skal de automatisk komme over på https-versionen. Det kaldes omdirigering (en redirect, som regel med statuskode 301).

En ordentlig rækkefølge er:

http://example.com      ->  https://example.com
https://example.com     ->  https://www.example.com   (kun hvis du bruger www som hovedadresse)
http://www.example.com  ->  https://www.example.com

Læg mærke til den første linje: send først fra http til https på det samme navn, først derefter eventuelt til www. Sådan kan browseren også modtage HSTS-instruktionen fra det nøgne navn. Internet.nl kontrollerer netop dette.

En hyppig fejl er dobbelt omdirigering: både i hostingpanelet og i et plugin eller i .htaccess. Det kan give en uendelig løkke ("for mange omdirigeringer"). Brug kun ét sted.

Lag 3: HSTS

Omdirigering har et svagt punkt: den allerførste forespørgsel går stadig ukrypteret via http. En angriber på det samme netværk kan opsnappe netop den forespørgsel og holde den besøgende på en falsk, ukrypteret version. Det er dét, HSTS (HTTP Strict Transport Security, RFC 6797) er til for.

Med HSTS sender din side en header med via https:

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

Browseren husker så: "denne side skal kun åbnes via https, de næste 31.536.000 sekunder (et år)". Hvis den besøgende senere skriver http://example.com, laver browseren selv om til https, endnu før der sendes noget over netværket. Den svage første forespørgsel forsvinder.

DelBetydning
max-age=Hvor længe browseren husker det, i sekunder. Internet.nl regner mindst et år (max-age=31536000) som tilstrækkeligt; en kort periode beskytter ikke folk, der kun sjældent besøger din side.
includeSubDomainsGælder også for alle underdomæner, f.eks. shop.example.com og mail.example.com.
preloadDu beder om optagelse på listen, der er indbygget i browserne (hstspreload.org). Så er selv det allerførste besøg beskyttet. Krav: blandt andet max-age på mindst et år, includeSubDomains og alle underdomæner på https. Det tager lang tid at komme af listen igen.
max-age=0Sletter den huskede instruktion igen.

Tre ting, du skal vide, før du slår HSTS til:

  • Https skal først fungere overalt. En browser, der har husket HSTS og ser en certifikatfejl, giver den besøgende ingen knap til alligevel at fortsætte (RFC 6797, afsnit 12.1). Udløber dit certifikat, eller passer det ikke til www, er din side utilgængelig for de besøgende, indtil det er løst.
  • includeSubDomains rammer alt under dit domæne. Et gammelt underdomæne uden certifikat, f.eks. en printer- eller kameraside på camera.example.com, kan derefter ikke længere åbnes.
  • Byg det gradvist op. Start med en kort max-age (f.eks. en dag), kontrollér at alt virker, og hæv den trinvis til et år. Vent ved hvert trin hele perioden ud.

En HSTS-header, der kommer ind via almindelig http, ignorerer browseren. Du ser den derfor kun i https-svaret.

Lag 4: sikkerhedsheadere

Ud over HSTS er der nogle headere, som fortæller browseren, hvad den må og ikke må med dine sider. Du behøver ikke have dem alle perfekte, men de første tre er enkle og uden risiko.

HeaderMod hvadGod værdi
X-Content-Type-OptionsBrowseren begynder selv at gætte, hvad en fil er, så en uploadet "billedfil" kan blive kørt som script.nosniff (den eneste gyldige værdi)
Content-Security-Policy: frame-ancestors ... eller X-Frame-OptionsClickjacking: en anden side indlæser din side usynligt i en frame og får besøgende til uforvarende at klikke på dine knapper.frame-ancestors 'self' eller 'none'; den ældre header X-Frame-Options: SAMEORIGIN eller DENY
Referrer-PolicyVed et klik til en anden side sender browseren adressen på den forrige side med. Der kan stå følsomme oplysninger i, f.eks. en søgeterm eller et ordrenummer.no-referrer eller same-origin (strengt), strict-origin-when-cross-origin (almindeligt, internet.nl giver her en advarsel)
Content-Security-Policy (fuld)Begrænser, hvorfra scripts, stilarter og billeder må indlæses. Gør indsatte ondsindede scripts (XSS) langt sværere.Skræddersyet per side. Undgå unsafe-inline, unsafe-eval og wildcards.

En fuld Content-Security-Policy er den kraftigste, men også den sværeste: en for streng regel ødelægger din statistik, din betalingsknap eller dit chatvindue. Med varianten Content-Security-Policy-Report-Only kan du først måle, hvad der ville blive blokeret, uden at ødelægge noget. Overlad det til din webudvikler, eller start kun med frame-ancestors.

Se headerne selv

Åbn din side i en browser, tryk på F12 (eller vælg "Undersøg"), gå til fanen Netværk, genindlæs siden og klik på den første forespørgsel. Under "Svarheadere" (Response Headers) ser du alt, hvad serveren sender med. Via kommandolinjen kan det også gøres:

curl -sI https://example.com/

Selve hjemmesiden: CMS, plugins og temaer

De bedste headere hjælper ikke, hvis softwaren bag din side er sårbar. De fleste hackede sider hos små virksomheder er ikke kommet ind via webserveren, men via et forældet plugin, et tema, der ikke er blevet opdateret i årevis, eller en svag administratoradgangskode.

  • Slå automatiske opdateringer til for dit CMS (f.eks. WordPress, Joomla eller et andet system) og for plugins, hvor det er muligt.
  • Fjern plugins og temaer, du ikke bruger; deaktiveret er ikke nok, filerne ligger der stadig.
  • Brug en stærk, unik adgangskode og totrinsbekræftelse (modul 2) til administratorlogin, og begræns antallet af loginforsøg.
  • Hold PHP-versionen (eller et andet sprog) for din pakke på en version, der stadig får opdateringer (lektion 5.1).

I praksis: sådan ser det ud

I DirectAdmin, panelet som WebOké bruger, slår du først Sikker SSL til under dit domæne og derefter Gennemtving SSL med https-omdirigering. På samme sted er der en kontakt til HSTS; slå kun den til, når certifikatet virker for alle navne. Hos andre udbydere fungerer det på lignende vis, eller du ordner det i indstillingerne for dit CMS.

Kører din side på Apache eller LiteSpeed, kan du også sætte headerne i .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>

Tilføj kun includeSubDomains, når du er sikker på, at hvert underdomæne har https. Kontrollér efter hver ændring med websitetesten fra internet.nl eller med din browsers udviklerværktøjer.

Opsummering

  • En hængelås betyder: krypteret og det rigtige navn. Den betyder ikke: troværdig.
  • Send altid http videre til https, først på samme navn, og kun ét sted.
  • HSTS får browseren til at huske, at din side kun kører via https; internet.nl regner en max-age på mindst et år (31536000) som god. Slå det først til, når https virker overalt, og byg det gradvist op.
  • X-Content-Type-Options: nosniff, frame-ancestors (eller X-Frame-Options) og Referrer-Policy er enkle; en fuld Content-Security-Policy er skræddersyet.
  • Opdateringer af dit CMS, plugins og temaer er mindst lige så vigtige som headere.

Quiz

1. Hvad forhindrer HSTS præcist?



2. Du slår Strict-Transport-Security: max-age=31536000; includeSubDomains til. En uge senere udløber certifikatet for shop.example.com. Hvad oplever faste besøgende?



3. Hvilken max-age regner internet.nl som minimum tilstrækkeligt for HSTS?



4. Hvad beskytter Content-Security-Policy: frame-ancestors 'self' imod?



5. Du ser en hængelås ved mijnbank-veilig.example i adresselinjen. Hvad ved du med sikkerhed af den grund?



Opgave

Opgave A4.2: Kontrollér https, HSTS og headers på din hjemmeside. Udfyld domænenavnet på din hjemmeside (har du ikke et, brug så internet.nl). Programmet åbner http:// og https:// for dit domæne og kontrollerer certifikatet, omdirigeringen til https, HSTS og sikkerhedsheaderne. Du får per punkt grøn, orange eller rød med forklaring.

Opgave A4.2: Kontrollér https, HSTS og headers på din hjemmeside

Indtast domænenavnet på din hjemmeside (har du ikke et, så brug internet.nl). Programmet åbner http:// og https:// for dit domæne og kontrollerer certifikatet, omdirigeringen til https, HSTS og sikkerhedsheaderne. Indtast derefter max-age for HSTS.



Det, du udfylder, og hvad vi finder, gemmer vi ikke. Din browser husker dine svar, og om du har bestået opgaven. Er du logget ind, gemmer vi kun, at du (næsten) bestod opgaven, i Mine kurser; der kan du også slette det.

Opgave D4.2: Opdater og ryd op på din hjemmeside. Log ind på administrationen af din hjemmeside, kontrollér versionen af dit CMS, plugins og temaer, fjern det du ikke bruger, og slå automatiske opdateringer til, hvor det er muligt. Afkryds tjeklisten og besvar refleksionsspørgsmålet.

Opgave D4.2: Opdater og ryd op på din hjemmeside

Sådan gør du: (1) Log ind på administrationen af din hjemmeside (eller bed din webbureau om at gøre det sammen med dig). (2) Noter versionen af dit CMS, og tjek om der er opdateringer klar. (3) Lav en backup (lektion 6.1), installer opdateringerne til CMS, plugins og temaer. (4) Fjern plugins og temaer, du ikke bruger. (5) Slå automatiske opdateringer til, hvor det er muligt. (6) Tjek hvilke administratorkonti der findes, og fjern konti for personer, der ikke længere arbejder hos dig. (7) Slå totrinsbekræftelse til for hver administratorkonto.




Dine afkrydsninger og noter forbliver kun i denne browser; vi sender dem ingen steder hen. Er du logget ind, gemmer vi kun i Mine kurser, at du har udført opgaven.

Læs mere

Trinene i WebOké-artiklerne gælder for WebOkés eget miljø; hos andre udbydere fungerer det på lignende vis.

Et øjeblik…

Opsæt dine domæner

Angiv for hvert domæne navneserverne, tilknytningen til din hosting, og hvem der bliver ejer.

Indlæser dine domæner…