Web Developer Tools optimaal benutten!

Een webbrowser is lang niet meer alleen een eenvoudige applicatie om HTML in gestructureerde webpagina’s om te toveren. Moderne browsers als Chrome, Firefox en Safari zijn uitgegroeid tot krachtige applicaties met veel extra functionaliteiten in huis. Zo heb je standaard een aantal hulpmiddelen beschikbaar: de Web Developer Tools. Hoe benut je ze?

Web Developer Tools: benut ze optimaal!

Verder lezen

Jouw website gebruiksvriendelijker en sneller met Bootstrap 4!

Staat jouw website bij Antagonist, dan ben je natuurlijk verzekerd van de snelste servers met de nieuwste PHP-versie. Maar wist je dat ook je website zelf sneller en beter onderhoudbaar kan maken? Bijvoorbeeld met het framework Bootstrap. Het ideale moment om je website met Bootstrap te (her)bouwen is nu. Check hoe je dit aanpakt!

Jouw website gebruiksvriendelijker en sneller met Bootstrap 4!

Verder lezen

Het grote boze internet, deel 2: XSS en CSRF

XSS: Cross-Site ScriptingVorige week kon je lezen over SQL-injectie, een techniek die aanvallers kunnen gebruiken om de server waarop je website draait aan te vallen. Het artikel van deze week is opnieuw een technisch artikel en het laatste deel van de tweeluik over de beveiliging van je website. Het gaat over Cross-Site Scripting (XSS) en Cross-Site Request Forgery (CSRF): twee client-side aanvallen, waarbij dus jouw website misbruikt wordt voor de doelen van iemand anders.

XSS: Cross-Site Scripting

Cross Site Scripting is het injecteren van kwaadaardige JavaScript-code in pagina’s die een server terugstuurt. Een goed voorbeeld is een gastenboek: gebruikers schrijven berichtjes in een gastenboek, en de server reageert met de lijst van alle berichtjes. Als iemand een berichtje zou kunnen plaatsen met een uitvoerbare JavaScript-code, dan is er sprake van XSS. (Cross-Site Scripting wordt afgekort als XSS: de afkorting CSS was al bezet, en met een beetje fantasie lijkt een X op een kruisje, vandaar.)

Bij een XSS-aanval wordt er kortom een stukje uitvoerbare code in het midden van ‘normale’ tekst gestopt, in de hoop dat browsers het gaan uitvoeren.

R0b3rt zegt:
Leuke site! 
<script>document.location="https://r0b3rt.tk/";</script>

Cross Site Scripting komt, net als SQL-injectie, veel te vaak voor. En dat terwijl de oplossing relatief eenvoudig is.

String escaping

Wie vorige week meegelezen heeft moet hier al een zekere symmetrie zien. Ook voor het voorkomen van XSS is string escaping weer nuttig. In deel 1 was het de bedoeling om invoer van de gebruiker zo te bewerken dat de server het niet als uitvoerbare code zag. Nu doen we hetzelfde voor de client. Het idee is om tekst die de gebruiker invoert en de server teruggeeft, dus reacties in een gastenboek bijvoorbeeld, zo door de mangel te halen dat ze geen kwaad meer kunnen.

String escaping voor HTML is bijna nog makkelijker dan voor SQL. HTML heeft maar een klein aantal speciale tekens. Wie alle punthaken in de invoer door hun HTML-representaties vervangt is eigenlijk al klaar: alle openhaken (<) worden &lt; voor ‘less than’, en alle sluithaken (>) worden &gt;. Daarnaast is het netjes om alle ampersands (&) en aanhalingstekens (“) te vervangen, al kunnen die weinig kwaad. Klinkt redelijk eenvoudig, en dit is precies wat de PHP-functie htmlentities doet. Nu nog onthouden om consequent htmlentities te gebruiken en we zijn 100% beschermd tegen cross-site scripting. Toch?

Verder lezen