Refactoring stap 4: Toevoegen security verbeteringen

Probleemstelling

In de code is nog geen enkele rekening gehouden met beveiliging. In de code worden .xml files ingelezen zonder eerst te controleren of deze files wel te vertrouwen zijn.

De bedrijfsnaam uit het ingelezen .xml bestand wordt bijvoorbeeld gebruikt als bestandsnaam bij het wegschrijven van de output. Dit zou alleen mogen als de bestandnaam uitsluitend karakters bevat die je zou verwachten in een bedrijfsnaam. Een bedrijfsnaam “../TestNaam” zou er namelijk voor kunnen zorgen dat de output .xml file in een hoger gelegen directory terecht komt.

Daarnaast kan iedereen die toegang heeft tot een PC waarop de software geïnstalleerd is de software opstarten, dit moet beter beveiligd worden.

Validatie XML files

Voordat de .xml input files verwerkt worden bouwen we een validatie stap in om er zeker van te zijn dat de .xml files te vertrouwen zijn en uitsluitend geldige waarden bevatten.

Aan de volgende voorwaarden dient voldaan te worden:

XML veld  Valide input 
Bedrijfsnaam  Uitsluitend alfanumerieke karakters, spaties en de speciale tekens: . – & @. 
Persoonsnaam  Uitsluitend alfanumerieke karakters, spaties en de speciale tekens: . -. 
Adres  Uitsluitend alfanumerieke karakters, spaties en het speciale teken: -. 
Woonplaats  Uitsluitend alfanumerieke karakters, spaties en de speciale tekens: . – ‘. 
Postcode  Eerst 4 cijfers, eventueel gevolgd door een spatie, vervolgens twee letters. 

Toegangsbeveiliging

Voordat de .xml input files verwerkt worden bouwen we een extra beveiligingsstap in.

Het verwerken mag alleen als de gebruiker van de software een user is van het domain [EDIT]. Vervang [EDIT] door het domainname waar de student op test.

Daarnaast moet de gebruiker lid zijn van de role: ScanGroup.

Als de gebruiker hier niet aan voldoet, dient er een mededeling op het scherm te verschijnen waaruit blijkt dat de gebruiker niet geautoriseerd is om de verwerking uit te voeren.

Uiterlijk inleveren op 9 juli 2019