Beveiliging door Django

Met Django kan je heel snel web sites en applicaties realiseren. Hoe blijven deze applicaties veilig, ondanks een snelle ontwikkeltijd? Django biedt ons als ontwikkelaar een goede basis om beveiliging waar te maken. Veel zaken waar programmeurs in andere omgevingen rekening mee moeten houden, worden al direct opgelost door Django. Hiermee wordt de ontwikkelaar ontlast en is de aandacht beschikbaar om goed werk te realiseren.

We geven een overzicht:

  • SSL omzetting - Django kan veilig transport van gegevens afdwingen.
  • Formulier validatie - Django controleert ingestuurde gegevens uitgebreid. Inbraakpogingen door extra keuzeopties toe te voegen zijn niet mogelijk; iets waarmee vorig jaar de Apple Store gehackt was.
  • Goede gegevens verwerking - Django voorkomt dat ingevoerde gegevens per ongeluk behandeld worden als systeem opdrachten ("SQL, XSS injection of remote-code execution"). Dit is de meest gebruikte manier om een site te hacken, veel systemen vermengen gebruikersinvoer uiteindelijk met eigen opdrachten zonder enig onderscheid.
  • Gelaagde opbouw - alle regels en beperkingen, omtrent wat iemand mag zien of mag doen, werken overal door.
  • Formulier beveiliging - door CSRF controle kunnen hackers kunnen niet vanaf een externe site gegevens opsturen.
  • Interne checklist - Django controleer bij livegang of alle instellingen correct en veilig staan.
  • Uitbreidbaar - modules voor het beperken van login pogingen, afdwingen van wachtwoordpolicies of toevoegen van tweetraps authenticatie (met SMS) zijn voorhanden.

Django wordt door veel ontwikkelaars onderhouden, die gezamen meer zien dan ieder voor zich. Door de samenwerking zijn veel kleine details op orde:

  • Clickjacking - de pagina's zijn beschermt tegen externe sites die als overlay werken.
  • Cookies - scripts kunnen sessie cookies niet uitlezen.
  • HTTP headers - ongeldige aanvragen worden geweigerd.
  • URL validatie - de URL kan niet gemanipuleerd worden, of ongewenst doorverwijzen naar externe sites.
  • Wachtwoorden zijn versleuteld - bij data-lekken kan niemand kan het originele wachtwoord achterhalen! Staat jouw account al op https://haveibeenpwned.com/?
  • Ingebouwde oplossingen - ontwikkelaars bouwen door op een veilig uitgedacht systeem; permissiebeheer, emails versturen en authenticatie zijn allemaal veilig uitgewerkt.
  • Geen informatielekken - bij foutmeldingen zal Django geen informatie prijsgeven waar aanvallers iets uit kunnen leren.

Uiteraard zijn er nog meer mogelijkheden waar programmeurs wel op moeten letten. Door de basis op orde te hebben, is het veel makkelijker om web sites daarop te controleren.