Mobiele Navigatie

Bij het maken van een website komt er veel meer kijken dan slechts het ontwerpen en ontwikkelen van een mooie en functionele site. Doordat WordPress steeds populairder wordt, wordt het aantrekkelijk voor hackers om uw website te exploiteren door beveiligingslekken te vinden en te misbruiken.

In dit artikel ga ik het hebben over het .htaccess bestand, en bekijken we een aantal code snippets die u helpen om uw site te beveiligen.

Het .htaccess bestand wordt alleen gebruikt door servers die Apache gebruiken. Een Nginx server gebruikt directives in het Nginx config bestand.

Wat is het WordPress .htaccess bestand?

Een .htaccess bestand is een optioneel configuratie bestand. Dit bestand is een samenstelling van zogenaamde modules, die ervoor zorgen dat uw website de correcte functionaliteit heeft. Middels het .htaccess bestand kunt u bepaalde configuratiewaardes overschrijven die standaard door de webserver ingesteld zijn. 

Als u er bijvoorbeeld voor kiest om een aangepaste URL structuur te maken voor uw permalinks in het WordPress dashboard, zal de .htaccess file automatisch worden aangepast met de benodigde ‘rewrite rules’.

U kunt dus verschillende instellingen in dit configuratie bestand opslaan, zoals o.a. het blokkeren van IP adressen, zorgen dat een bestand of map niet publiekelijk toegankelijk is, het met een wachtwoord beschermen van een directory, browser caching aanzetten, enz.

Waar vindt u het .htaccess bestand?

De .htaccess file is terug te vinden in de ‘root’ van de FTP-server. Dit is de hoofdmap waarin alle bestanden van uw website worden opgeslagen. Om deze hoofdmap te vinden, heeft u een FTP-programma (bijv. FileZilla) nodig, waarmee u verbinding kunt maken met uw FTP-server.

De meeste webhosting bedrijven leveren ook een online file manager waarmee u de inhoud van de .htaccess file ook zelf kunt aanpassen.

HTTP-headers om uw website te beveiligen

Hackers kunnen vele verschillende methoden gebruiken om persoonlijke gegevens te stelen. Eén van de bekendste methoden om bepaalde informatie te achterhalen, is Cross-Site Scripting (XSS).

Bij Cross-Site Scripting injecteert een hacker kwaadaardige code (JavaScript) in een browser of in een kwetsbare website of webapplicatie. Deze aanvallen laten uw gebruikers openstaan ​​voor cookie diefstal, informatie diefstal, account kaping, clickjacking en meer.

Moderne webbrowsers hebben tegenwoordig een krachtige beveiliging ingebouwd, maar u moet de browser vertellen dat u die beveiligingsmechanismen voor uw website wilt gebruiken. Dit kan worden geactiveerd door specifieke HTTP-headers in te stellen in uw .htaccess bestand.

X-Frame-Options

De HTTP-header van X-Frame-Options kan worden gebruikt om aan te geven of een browser al dan niet toestemming moet hebben om een ​​pagina in een <frame> of <iframe> weer te geven. Dit kan worden gebruikt om clickjacking aanvallen te voorkomen door ervoor te zorgen dat uw inhoud niet is ingesloten in andere sites.

Door in onderstaande code de richtlijn op DENY in te stellen, wordt er voorkomen dat onze pagina’s in frames worden weergegeven, zelfs vanaf onze eigen website.

# Don't allow any pages to be framed - Defends against CSRF
Header set X-Frame-Options SAMEORIGIN

X-XSS-Protection

Deze HTTP-header is exclusief voor Internet Explorer 8 en 9, het schakelt een cross-site scripting-beveiliging in, die standaard is uitgeschakeld omdat het mogelijk sommige websites zou kunnen breken. Gebruik de header X-XSS-Protection "1; mode = block" om het XSS-filter in te schakelen.

# Turn on IE8-IE9 XSS prevention tools
Header set X-XSS-Protection "1; mode=block"

X-Content-Security-Policy

Content Security Policy (CSP) is een extra beveiligingslaag die helpt bij het detecteren en verminderen van bepaalde soorten aanvallen, waaronder Cross Site Scripting (XSS) en data-injectie aanvallen. Deze aanvallen worden voor van alles gebruikt, van gegevensdiefstal tot beschadiging van de site of verspreiding van malware.

Deze richtlijn instellen op "allow 'self';" zal voorkomen dat onze pagina’s extern JavaScript laden of inline JavaScript uitvoeren. Onze website zal veiliger zijn tegen XSS-aanvallen omdat het voor een aanvaller moeilijker wordt om JavaScript in de browser van de bezoeker uit te voeren via een ingeframede pagina op onze website of via een SQL-injectie.

Er zijn veel instellingen beschikbaar voor deze HTTP-header maar ik raad u aan om de Mozilla Wiki-pagina te lezen voordat u CSP gebruikt, omdat u bepaalde externe inhoud moet toestaan ​​als u bijvoorbeeld Google Adsense gebruikt.

# Only allow JavaScript from the same domain to be run.
# Don't allow inline JavaScript to run.
Header set X-Content-Security-Policy "allow 'self';"

X-Content-Type-Options: nosniff

Deze HTTP header voorkomt “content sniffing (ook wel MIME-sniffing genoemd)” in Internet Explorer. Elke website laadt bestanden, deze bestanden (content) zijn altijd van een bepaald type (MIME-type). Content sniffing houdt meestal in dat een browser wordt misleid om een ​​script uit te voeren dat is vermomd als een ander bestandstype.

Als uw site bijvoorbeeld gebruikers toestaat afbeeldingen te uploaden en te delen, kan een aanvaller mogelijk een speciaal vervaardigd afbeeldingsbestand uploaden dat JavaScript code bevat. Een browser die content ‘snifft’, kan dan worden misleid om het schadelijke bestand uit te voeren.

Om content-sniffing aanvallen te verminderen, stelt u de response header X-Content-Type-Options in op nosniff. Deze HTTP header instrueert de browser om het response content type niet te negeren. Dus als de server zegt dat de inhoud tekst / html is, zal de browser deze ook weergeven als tekst / html.

# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"

HTTP Strict Transport Security header

Als een website een verbinding via HTTP accepteert en omleidt naar HTTPS, kunnen bezoekers in eerste instantie communiceren met de niet-gecodeerde versie van de site voordat ze worden omgeleid. Dit creëert een kans voor een man-in-the-middle aanval. De omleiding kan worden gebruikt om bezoekers naar een kwaadaardige 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 nooit een site met HTTP mag laden en in plaats daarvan alle pogingen om toegang tot de site via HTTP te krijgen, automatisch moet converteren naar HTTPS-verzoeken.

# Enable HTTP Strict Transport Security (HSTS)
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

Beveilig uw wp-config.php bestand

In het wp-config.php bestand staat gevoelige informatie, zoals de database naam en toegangsgegevens en daarom is het belangrijk om deze zo veel mogelijk te beschermen tegen hackers. Onderstaande regels blokkeren in feite de toegang tot uw wp-config.php file tegen hacking en code aanpassingen.

# Protect wp-config.php file
<Files wp-config.php>
order allow, deny
deny from all
</Files>

Blokkeer Directory Browsing

Directory Browsing wordt gebruikt door hackers om er achter te komen welke mappen en bestanden op uw hostingserver staan. Het is daarom een groot veiligheidsrisico. Plaats onderstaande code in uw .htaccess bestand om directory browsing uit te schakelen.

# disable directory browsing
Options All -Indexes

Beveilig het .htaccess bestand

And last but not least .. uiteraard is het ook raadzaam om uw .htaccess file ook te beveiligen, want via het .htaccess bestand kunnen hackers ook invloed uitoefenen op uw website! Het is daarom belangrijk dat deze niet ingezien kan worden, of kan worden aangepast.

Voeg hiervoor onderaan uw .htaccess de volgende regels toe:

# protect .htaccess
<Files ~ "^.*\.([Hh][Tt][Aa])">
  Order allow,deny
  Deny from all
  Satisfy all
</Files>

Bottom-line:

Er is op het internet nogal wat commotie over het .htaccess bestand en of dit bestand nog niet overbodig is. Hoewel alles vanuit het .htaccess bestand ook op andere manieren te regelen is zorgt het .htaccess bestand ervoor dat gebruikers (zeker op shared hosting servers) vrijheid krijgen in de manier waarom hun website / domein omgaat met aanvragen naar de webserver.

Deel dit Bericht:

Auteur: Jan Rajtoral

Jan Rajtoral is een ervaren grafische vormgever en webdesigner. Hij heeft een ruime ervaring met User Experience (UX), Responsive Web Design (RWD) en WordPress Ontwikkeling & Thema Ontwerp. Maar hij ontwerpt en ontwikkelt ook logo’s en huisstijlen, waarbij hij streeft naar merkconsistentie in het hele ontwerp.

Nog Geen Reacties

Laat een Reactie achter


*) Verplichte velden.

Meest Recent Project

Ikdoemeejijook