Vimexx Facebook

Onderwerp:

HTTP Security Headers compleet

Naam: Klaas O

Titel: Member

Geplaatst op 06-11-2018 13:28

HTTP Security Headers compleet

Geachte klanten van Vimexx, en zijn bezoekers.

In de aankomende periode per nieuwe topic, zal alles per onderdeel in korte simpele uitleg, u uitleggen hoe u uw HTTP Beveiliging Let's Encrypt SSL Certificaat moet gebruiken.

Let's Encrypt SSL Certificaat toevoegen aan de website is namelijk niet alles, om jouw bezoekers/klanten in een veilige omgeving gebruik maken van jouw diensten.

Let's Encrypt SSL Certificaat heeft dus veel meer nodig, om de werking ervan optimaal te gebruiken dat jouw website daadwerkelijk veilig beschouwd kan worden.

De volgende toepassingen HTTP Security Headers, komen allemaal in de .htaccess bestand te staan.

MAAK ALTIJD EERST EEN BACKUP VOORDAT JE BEZIG GAAT

Dit zijn de topic onderwerpen, die aan bod zullen komen;

*Expect-CT
*Access-Control-Allow-Origin
*Access-Control-Expose-Headers
*Access-Control-Allow-Methods
*Access-Control-Allow-Headers
*X-XSS-Protection
*X-Content-Type-Options
*X-Frame-Options
*Referrer-Policy
*Transfer-Encoding
*Feature-Policy
*Strict-Transport-Security

Extra
Last-Modified
max-age
TE

DNS CAA aanmaken in DirectAdmin
HSTS activeren in DirectAdmin

Waar komt alles in te staan??

  • .htaccess bestand

Waar Komt bijvoorbeeld Expect-CT: "enforce, max-age=30" te staan?

  • Het geheel komt allemaal tussen 1

<IfModule mod_headers.c>

Header bla bla bla bla

</IfModule>

Te staan

Alle Headers, kan je gewoon kopiëren en plakken in je .htaccess bestand. Ze zijn allemaal getest op werking, dus je zou hiermee een A+ website moeten verkrijgen.

 

De eerste topic zal gaan over DNS CAA aanmaken in DirectAdmin

 

Datum 06-11-2018 13:28:24

Naam: Klaas O

Titel: Member

Geplaatst op 06-11-2018 13:41

Stap 1

DNS CAA aanmaken in DirectAdmin

met de plaatjes kan makkelijk alle stappen gevolgd worden.

Laten we een DNS CAA aanmaken, klik op de link in je DirectAdmin "DNS Beheer"

DNS CAA aanmaken in DirectAdmin

 

 

 

 

 

 

 

Scrol geheel naar beneden, daar je je het volgende ziet staan zoals op het plaatje te zien zal zijn.

Stap 2
Voeg vervolgens aan de linkerzijde tekstvak het volgende in

Jouwdomeinnaam. MET EEN . (punt) aan het einde van je domeinnaam

Volgende stap aan de rechterzijde vul je het volgende in, en verander daar niet aan. Vul aan de rechterzijde het volgende in, verander daar natuurlijk naar jouw e-mail adres
0 iodef "mailto:abuse@jouwwebsitedomeinnaam.nl"

Voeg nu toe, dat wat je ingevuld hebt, dan is de eerste record aangemaakt.

Domeinrecord toevoegen

 

 

 

 

 

 

 

 

 

Stap (3)
Een tweede DNS CAA aanmaken, wederom verander niets aan het gene wat hieronder staat vermeld. Je herhaald namelijk nu, wat je al eerder hebt uitgevoerd hebt bij het aanmaken van de eerste DNS CAA.

Vergeet de punt niet an de domeinnaam

Linker tekstvak
jouwdomeinnaam.

Rechter tekstvak
0 issuewild "letsencrypt.org"

Voeg nu toe, dat wat je ingevuld hebt, dan is de eerste record aangemaakt.

letsencrypt.org Domeinrecord toevoegen

tap (4)
Goed we gaan er nog 1 aanmaken voor de zekerheid een WILDCARD DNS CAA

linker tekstvlak
jouwdomeinnaam.

rechter tekstvlak
0 issuewild "letsencrypt.org"

NU MOET JE TESTEN OF JE HET GOED GEDAAN HEBT.

Hoe te gebruiken deze test, gewoon alleen dit erin typen: jouwdomeinnaam.nl (zie foto)

crt.sh

De test kan je hier uitvoeren

Je zal per direct en enorme lijst te voorschijn komen, betekend dat je het goed gedaan hebt.

Tja er is nog iets dit is een optie:

Bewaak uw domein (optioneel)

Zelfs als u een CAA-record publiceert, kan een niet-conforme certificeringsinstantie uw CAA-records negeren. Gebruik Cert Spotter om certificaattransparantielogboeken bij te houden, zodat u een e-mail ontvangt als dit gebeurt.

Kosten per maand zijn in dollars 15,95 = 13.97 EURO per maand voor 1 domeinnaam

Hier de link naar Cert Spotter

Of deze

Cert Spotter API-prijzen

1.000 zoekopdrachten
$ 0 / maand
1.000 single-hostname vragen / uur
100 vragen per domein / uur
75 vragen / minuut
5 vragen / seconde

Hier de link voor meer informatie en aanmelding

Je bent nu klaar met het toevoegen van de DNS CAA records
 

Datum 06-11-2018 13:41:30

Naam: Klaas O

Titel: Member

Geplaatst op 06-11-2018 13:50

Activeren van HSTS in Direct admin

Login bij jouw DirectAdmin, en zoek de link op zoals op het plaatje is weergegeven "SSL certificaten" en klik daarop

SSL Certificaat

 

Nu ben je in het volgende scherm gekomen, dan zie je aan de rechterzijde het volgende staan "Legacy SSL certificaten" klik daarop

Legacy SSL Certificaat

Nu ben je beland dat waar jij jouw HSTS kunt benaderen, klik op die link

Klik hier om de HSTS te activeren

Nu dat jij dat hebt gedaan, ben je geheel klaar in DirectAdmin

Volgende en laatste onderdeel, is het toevoegen van HTTP Security Headers in jouw .htaccess bestand
 

Datum 06-11-2018 13:50:07

Naam: Klaas O

Titel: Member

Geplaatst op 06-11-2018 13:54

HTTP Security Headers: Expect-CT header voor Certificate Transparency   Richtlijnen Expect-CT header max-leeftijd

Geeft het aantal seconden aan na ontvangst van het veld Expect-CT header, waarbij de useragent de host moet beschouwen van wie het bericht is ontvangen als een bekende Expect-CT-host.

Als een cache een waarde ontvangt die groter is dan deze kan weergeven of als een van de daaropvolgende berekeningen overloopt, beschouwt de cache de waarde als 2147483648 (2^31) of het grootste positieve gehele getal dat deze handig kan vertegenwoordigen.

report-uri="<uri>"   Optioneel

Specificeert de URI waarnaar de user-agent Expect-CT-fouten moet rapporteren.

Wanneer zowel de "enforce"  als de rapport-uri-richtlijn aanwezig zijn, wordt de configuratie een "report-uri" -configuratie genoemd, waarbij aan de gebruikersagent zowel wordt gemeld dat naleving van het beleid inzake Certificate Transparency policy moet worden afgedwongen en dat schendingen moeten worden afgedwongen. worden gemeld.

enforce   Optioneel

Signalen aan de user-agent dat naleving van het Certificate Transparency policy moet worden afgedwongen (in plaats van alleen rapportage van naleving) en dat de user-agent toekomstige verbindingen moet weigeren die zijn beleid inzake Certificate Transparency policy schenden.

Wanneer zowel de enforce  als de report-uri aanwezig zijn, wordt de configuratie een "enforce-and-report" -configuratie genoemd, waarbij aan de gebruikersagent zowel wordt gemeld dat naleving van het beleid inzake Certificate Transparency policy moet worden enforced en dat schendingen moeten worden afgedwongen. worden gemeld.

2 mogelijkheden om de header Expect-CT te gebruiken.

In het volgende wordt de enforcement van report-uri voor 24 uur gespecificeerd en worden overtredingen gemeld aan foo.example/report, Plak dit hieronder in uw .htaccess bestand

Deze werkt net zo goed als de volgende, met 1 uitzondering. Met de "report" kunt u zich aanmelden bij Report-URI

<IfModule mod_headers.c> Header set Expect-CT: max-age=86400, enforce, report-uri="https://foo.example/report" </IfModule>

In het volgende voorbeeld wordt de enforce van Certificate Transparency ook behouden en kunt u zo tussen uw eerder "<IfModule mod_headers.c>" en "</IfModule>" plakken van uw .htaccess bestand

Header set Expect-CT: "enforce, max-age=31536000"

 

Datum 06-11-2018 13:54:07

Naam: Klaas O

Titel: Member

Geplaatst op 06-11-2018 14:04

HTTP Header voor Strict-Transport-Security

 

De HTTP Strict-Transport-Security antwoordheader (vaak afgekort als HSTS) laat een website aan browsers vertellen dat deze alleen moet worden benaderd via HTTPS, in plaats van HTTP.

 
Richtlijnen Strict-Transport-Security

max-age=<verlopen-time>

De tijd, in seconden, dat de browser moet onthouden dat een site alleen via HTTPS kan worden geopend.

includeSubDomains         Optioneel

Als deze optionele parameter is opgegeven, is deze regel ook van toepassing op alle subdomeinen van de site.

preload         Optioneel

Geen onderdeel van de specificatie.

Omschrijving Strict-Transport-Security

Als een website een verbinding accepteert via HTTP en omleidingen naar HTTPS, kunnen bezoekers in eerste instantie communiceren met de niet gecodeerde versie van de site voordat ze worden omgeleid, bijvoorbeeld als de bezoeker http://www.foo.com/ of zelfs typt gewoon foo.com. Dit schept een kans voor een man-in-the-middle-aanval. De omleiding kan worden misbruikt om bezoekers naar een kwaadwillende site te leiden in plaats van naar de beveiligde versie van de oorspronkelijke site.

De HTTP Strict-Transport-Security-header informeert de browser dat deze een site nooit met HTTP mag laden en moet in plaats daarvan alle pogingen om toegang te krijgen tot de site automatisch omzetten met behulp van HTTP-naar-HTTPS-verzoeken.

Opmerking: de header Strict-Transport-Security wordt genegeerd door de browser wanneer uw site wordt geopend met HTTP; Dit komt omdat een aanvaller HTTP-verbindingen kan onderscheppen en de kop kan injecteren of verwijderen. Wanneer uw site via HTTPS wordt geopend zonder certificaatfouten, weet de browser dat uw site geschikt is voor HTTPS en voldoet het aan de Strict-Transport-Security-header.

Een voorbeeldscenario

U logt in op een gratis WiFi-toegangspunt op een luchthaven en begint met surfen op internet, bezoekt uw online bankservice om uw saldo te controleren en een paar rekeningen te betalen. Helaas is het toegangspunt dat u gebruikt eigenlijk een hackers-laptop en onderschept het uw oorspronkelijke HTTP-verzoek en wordt u doorverwezen naar een kloon van de site van uw bank in plaats van het echte werk. Nu worden uw privégegevens blootgesteld aan de hacker.

Strict-Transport-Security lost dit probleem op; zolang u de website van uw bank eenmaal gebruikt heeft via HTTPS, en de website van de bank Strict-Transport-Security gebruikt, weet uw browser automatisch alleen HTTPS te gebruiken, wat hackers verhindert om dit soort man-in-the-middle uit te voeren aanval.

Hoe de browser het afhandelt

De eerste keer dat uw site via HTTPS wordt geopend en de Strict-Transport-Security-header wordt geretourneerd, registreert de browser deze informatie, zodat toekomstige pogingen om de site met HTTP te laden automatisch HTTPS zullen gebruiken.

Wanneer de door de Strict-Transport-Security-header gespecificeerde vervaltijd verstrijkt, zal de volgende poging om de site via HTTP te laden normaal doorgaan in plaats van automatisch HTTPS te gebruiken.

Wanneer de header Strict-Transport-Security wordt afgeleverd bij de browser, wordt de vervaltijd voor die site bijgewerkt, zodat sites deze informatie kunnen vernieuwen en voorkomen dat de time-out vervalt. Als het nodig is om Strict-Transport-Security uit te schakelen, stelt u de max-age in op 0 (via een https-verbinding) en vervalt onmiddellijk de Strict-Transport-Security-header, die toegang via http mogelijk maakt.

Preloading Strict-Transport-Security

Google onderhoudt een HSL-preload-service. Door de richtlijnen te volgen en uw domein succesvol in te dienen, maken browsers nooit verbinding met uw domein via een onveilige verbinding. Hoewel de service wordt gehost door Google, hebben alle browsers aangegeven dat ze de preload lijst willen gebruiken (of daadwerkelijk gebruiken). Het maakt echter geen deel uit van de HSTS-specificatie en mag niet als officieel worden behandeld.

Informatie over de preloadlijst van HSTS in Chrome: https://www.chromium.org/hsts

Daadwerkelijke Header code Strict-Transport-Security

Alle huidige en toekomstige subdomeinen zijn HTTPS voor een maximale leeftijd van 1 jaar. Hiermee blokkeert u de toegang tot pagina's of subdomeinen die alleen via HTTP kunnen worden weergegeven.

Hieronder kunt u het geheel kopiëren en plakken in un .htaccess bestand

LET OP: Al hebt u al het volgende in uw .htaccess bestan staan, dan kunt u gewoon de onderste regel pakken

<IfModule mod_headers.c>
Header always set Strict-Transport-Security: "max-age=63072000; includeSubDomains; preload" env=HTTPS
</IfModule>

Header always set Strict-Transport-Security: "max-age=63072000; includeSubDomains; preload" env=HTTPS

 

Datum 06-11-2018 14:04:52

Naam: Klaas O

Titel: Member

Geplaatst op 06-11-2018 14:27

HTTP X-Frame-Options Clickjacking verdediging

Zinsbouw mogelijkheden

Header set X-Frame-Options: deny
Header setX-Frame-Options: sameorigin
Header setX-Frame-Options: "allow-from; https://example.com/"

Richtlijnen voor X-Frame-Options

Als u deny opgeeft, mislukken niet alleen pogingen om de pagina in een frame te laden wanneer ze van andere sites worden geladen, maar pogingen om dit te doen mislukken wanneer ze vanaf sameorigin worden geladen. Aan de andere kant, als u sameorigin specificeert, kunt u de pagina nog steeds in een frame gebruiken zolang de site die deze in een frame bevat dezelfde is als degene die de pagina bedient.

deny

De pagina kan niet in een frame worden weergegeven, ongeacht de site die dit probeert.

sameorigin

De pagina kan alleen in een frame op de opgegeven origin worden weergegeven. Merk op dat dit in Firefox nog steeds hetzelfde probleem heeft als sameorigin  deed - het controleert niet de frame ancestors om te zien of ze in same origin zijn.

allow-from uri

De pagina kan alleen in een frame op de opgegeven oorsprong worden weergegeven. Merk op dat dit in Firefox nog steeds hetzelfde probleem heeft als dezelfde originel deed - het controleert niet de frame ancestors om te zien of ze in sameorigin zijn.

Apache configureren

Als u Apache wilt configureren om de header X-Frame-Options voor alle pagina's te verzenden, voegt u dit toe aan de configuratie van uw site:

<IfModule mod_headers.c>

Header always set X-Frame-Options "sameorigin"

</IfModule>

Als u Apache wilt configureren om de weigering voor X-Frame-Options in te stellen, voegt u dit toe aan de configuratie van uw site:

<IfModule mod_headers.c>
Header set X-Frame-Options "deny"
</IfModule>

Als u Apache wilt configureren om de X-Frame-Options in te stellen van een specifieke host, voegt u dit allow-from de configuratie van uw site:

<IfModule mod_headers.c>
Header set X-Frame-Options "allow-from https://example.com/"
</IfModule>

IIS configureren

Als u IIS wilt configureren om de header X-Frame-Options te verzenden, voegt u dit toe aan het Web.config van uw site:

<system.webServer>

       ...
<httpProtocol>
  <customHeaders>  
<add name="X-Frame-Options" value="sameorigin" />  
</customHeaders>
</httpProtocol>...   
</system.webServer>

HAProxy configureren

Om HAProxy te configureren om de header X-Frame-Options te verzenden, voeg dit toe aan uw front-end, listen of backend-configuratie:

rspadd X-Frame-Options:\ sameorigin

Datum 06-11-2018 14:27:48

Naam: Klaas O

Titel: Member

Geplaatst op 06-11-2018 15:16

X-XSS-protection IE8+

Het XSS-filter werd geïntroduceerd in Internet Explorer 8 door Microsoft als een tegenaanval op 'non-persistent XSS aanvallen'. Je kunt ervoor kiezen om deze header mee te geven vanaf je applicatie om je gebruikers minder vatbaar te maken voor XSS-aanvallen, mocht je site ooit misbruikt worden hiervoor. Ik zou alleen niet al te veel vertrouwen op deze beveiligingstechniek, maar gewoon je input goed filteren

Voorbeeld X-XSS-Protection

X-XSS-bescherming: 0
X-XSS-bescherming: 1
X-XSS-bescherming: 1; mode = block
X-XSS-bescherming: 1; rapport = <rapportage-uri>

0  Schakelt XSS-filtering uit.
1  Schakelt XSS-filtering in (meestal standaard in browsers). Als een cross-site scripting-aanval wordt gedetecteerd, zal de browser de pagina opschonen (verwijder de onveilige onderdelen).

1; mode=block

Schakelt XSS-filtering in. In plaats van de pagina te ontsmetten, zal de browser voorkomen dat de pagina wordt gerenderd als er een aanval wordt gedetecteerd.

1; report=<reporting-URI> (alleen Chromium)

Schakelt XSS-filtering in. Als een cross-site scripting-aanval wordt gedetecteerd, zal de browser de pagina opschonen en de overtreding melden. Hiermee wordt de functionaliteit van de CSP-rapport-uri-richtlijn gebruikt om een rapport te verzenden.

Instellingen voor Apache (.htaccess) <IfModule mod_headers.c> Header set X-XSS-Protection "1; mode=block" </IfModule>

Je kunt dus het volgende gebruiken

Header set X-XSS-Protection "1; mode=block"

 

Datum 06-11-2018 15:16:44

Naam: Klaas O

Titel: Member

Geplaatst op 06-11-2018 15:25

Strict Transport Security

 

Ook om HTTPS verkeer te beveiligen zijn er verschillende opties. Eén daarvan is een certificaat 'pinnen' via een header. De techniek heet 'HTTP Strict Transport Security (HSTS)", dit maakt het mogelijk dat je alleen via HTTPS naar de site surft. Ook maakt dit het een stuk lastiger om een connectie van SSL te strippen via sslstrip. Deze tool is gemaakt door Moxie Marlinspike.

Zinsbouw Voorbeeld Strict-Transport-Security: max-age=<expire-time> Strict-Transport-Security: max-age=<expire-time>; includeSubDomains Strict-Transport-Security: max-age=<expire-time>; preload Richtlijnen voor Strict Transport Security

max-age=<expire-time>

De tijd, in seconden, dat de browser moet onthouden dat een site alleen via HTTPS kan worden geopend.

includeSubDomains  Optioneel

Als deze optionele parameter is opgegeven, is deze regel ook van toepassing op alle subdomeinen van de site.

preload Optioneel

Overzicht voorbeeld dat hoe het er dan uit zou komen te zien

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

Compleet Strict Transport Security die je in de .htaccess bestand kunt plaatsen

 

Header always set Strict-Transport-Security: "max-age=63072000; includeSubDomains; preload" env=HTTPS

 

Datum 06-11-2018 15:25:26

Naam: Klaas O

Titel: Member

Geplaatst op 06-11-2018 15:43

HTTP Secure Header Referrer-Policy

Zindsopbouw Referrer-Policy

Referrer-Policy: no-referrer Referrer-Policy: no-referrer-when-downgrade Referrer-Policy: origin Referrer-Policy: origin-when-cross-origin Referrer-Policy: same-origin Referrer-Policy: strict-origin Referrer-Policy: strict-origin-when-cross-origin Referrer-Policy: unsafe-url

Richtlijnen  Header Referrer-Policy

no-referrer

De referrer wordt volledig weggelaten. Er wordt geen verwijzingsinformatie verzonden samen met verzoeken.

no-referrer-when-downgrade (standaard)

Dit is het standaardgedrag van de user agent als er geen beleid is opgegeven. De URL wordt verzonden als een verwijzing wanneer het protocolbeveiligingsniveau hetzelfde blijft (HTTP → HTTP, HTTPS → HTTPS), maar niet wordt verzonden naar een minder goed beveiligde bestemming (HTTPS → HTTP).

origin

Verstuur de herkomst van het document alleen als de verwijzer in alle gevallen.

Het document

https://example.com/page.html stuurt de verwijzer https://example.com/.

origin-when-cross-origin

Stuur een volledige URL bij het uitvoeren van een verzoek met dezelfde herkomst, maar verzend de herkomst van het document alleen voor andere gevallen.

same-origin

Er wordt een verwijzende URL verzonden voor de herkomst van dezelfde site, maar same-site origins, bevatten geen verwijzingsinformatie.

strict-origin

Verstuur de oorsprong van het document alleen als de verwijzer wanneer het protocolbeveiligingsniveau hetzelfde blijft (HTTPS → HTTPS), maar verzend het niet naar een minder veilige bestemming (HTTPS → HTTP).

strict-origin-when-cross-origin

Stuur een volledige URL bij het uitvoeren van een request met dezelfde oorsprong, verzend de origin alleen wanneer het protocolbeveiligingsniveau hetzelfde blijft (HTTPS → HTTPS) en stuur geen header naar een minder goed beveiligde bestemming (HTTPS → HTTP).

unsafe-url

een volledige URL beëindigen bij het uitvoeren van een verzoek met dezelfde herkomst of een nieuwe herkomst. Mijn aanraden is om de unsafe-url niet te gebruiken, hoofdreden is dat er een foutmelding zal worden gegeven.

Het hieronder geplaatste HTTP Header Referrer-Policy, kan men dus toevoegen in de .htaccess bestand

Header set Referrer-Policy "no-referrer, strict-origin-when-cross-origin"

Datum 06-11-2018 15:43:43