Helpdesk artikelen (FAQ)
< All Topics
Print

HTTPOnly en HSTS

Het instellen van HTTPOnly en HSTS verhoogt de veiligheid van uw website. Het instellen van HTTPOnly en HSTS is eenvoudig te realiseren via onderstaande stappen.

Wat is .htaccess?

.htaccess is een configuratiebestand. Je kunt er bepaalde instellingen mee aanpassen die het gedrag van je website beïnvloeden. Deze instellingen kun je eenvoudig aanpassen via de Filemanager van DirectAdmin. Een andere optie is om dit via een FTP-programma te doen. Als het bestand nog niet bestaat kun je het zelf aanmaken.

WordPress heeft bijvoorbeeld wel een standaard .htaccess bestand. In dit bestand, dat in je hoofdmap van de website staat, is het gedeelte voor WordPress duidelijk gemarkeerd:

# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase /
RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] # END WordPress

Pas deze instellingen tussen de #-tags (die een commentaar markeren) niet aan. WordPress heeft ze nodig om goed te kunnen werken.

Het .htaccess bestand is een tekstbestand. Met “regels” in het bestand vertel je aan de server, waar je website op wordt gehost, hoe er omgegaan moet worden met de data-aanvraag van de browser van de bezoeker van je site.

Opvallend is de afwijkende naamgeving: .htaccess. De naam .htaccess is een afkorting die staat voor “HyperText Access”. De punt aan het begin van de bestandsnaam zorgt dat het een verborgen bestand is.

Beveiliging van websites

Zonder heel erg in detail te treden: het onderstaande stukje kun je kopieëren en plakken, direct in het begin, in je .htaccess.

HTTPOnly

Het eerste gedeelte zorg er voor dat de cookies van de website, mits je die gebruikt, alleen toegankelijk zijn voor de server.

Het belangrijkste voordeel hiervan is dat het cross-site scripting (XSS, een methode om je website aan te vallen) voorkomen wordt. Dit voorkomt bijvoorbeeld verzoeken van kwaadaardige JavaScript-bestanden die cookies proberen te stelen.

Heel veel websites gebruiken cookies. Met name WordPress doet dit: Gravatar, standaard in WordPress actief, statistieken via Google en andere instellingen gebruiken allemaal cookies.

Header set Strict-Transport-Security (HSTS)

HSTS werd in 2012 gespecificeerd. Het zorgt er voor dat de browser gedwongen wordt een beveiligde verbinding te gebruiken wanneer een website SSL (HTTPS-verbinding) gebruikt.. Het is een beveiligingsheader die u toevoegt en het vertelt dus aan uw webserver “alleen via HTTPS!”.

Deze optie is alleen nuttig als u gebruik maakt van een SSL-certificaat en uw website een beveiligde verbinding heeft. Een noodzaak tegenwoordig want veel browsers geven een waarschuwing als een website géén gebruik maakt van HTTPS. De meeste hostingbedrijven leveren tegenwoordig gratis SSL-certificaten van Let’s Encrypt of u kunt voor zo’n tien tot vijftien euro per jaar een (commercieel) certificaat aanschaffen.

Websites worden als ‘onveilig’ gemarkeerd door de meeste browsers als er géén SSL/HTTPS verbinding is. En dat kan natuurlijk niet de bedoeling zijn.

X-Frame-opties

De X-Frame-Options HTTP-responsheader kan worden gebruikt om aan te geven of een browser een pagina moet kunnen weergeven in een <frame>, <iframe>, <embed> of <object>. Sites kunnen dit gebruiken om clickjacking-aanvallen te voorkomen door ervoor te zorgen dat hun inhoud niet wordt ingesloten in andere sites.

Beveiliging via .htaccess

Kopieëren en plakken van onderstaande code in de .htaccess van uw website voegt HTTPOnly en HSTS toe aan uw website zodra u het opgeslagen hebt. Er wordt dus wel uitgegaan van gebruik van SSL voor uw website! Gebruikt u dat niet, dan is het zaak dit éérst te regelen.

(voorbeeld, pas aan naar eigen voorkeuren)

## SECURITY ##
<ifModule mod_headers.c>
Header edit Set-Cookie ^(.*)$ "$1; HTTPOnly"
Header edit Set-Cookie ^(.*)$ "$1; Secure"
Header always set Strict-Transport-Security: "max-age=31536000" env=HTTPS
Header always set Content-Security-Policy "upgrade-insecure-requests"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy: "no-referrer-when-downgrade"
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options nosniff
Header always set Permissions-Policy "geolocation=(), midi=(),sync-xhr=(),accelerometer=(), gyroscope=(), magnetometer=(), camera=(), fullscreen=(self)"
</IfModule>
## EINDE SECURITY ##

Meer weten over dit onderwerp? Kijk op de developerssite van Mozilla.

Inhoud