Ik ben in m'n vrije tijd een php-framework aan het schrijven dat onder andere iets EJB-achtigs moet doen.
In de eerste instantie wilde ik alleen een dotProject'++' maken, maar omdat ik toch nog een half programmeerseltje had liggen ben ik dat gaan verbeteren
Op dit moment ben ik aan het bekijken hoe en waar ik de beveiliging wil toepassen; voor het gemak alleen even het voorkomen van sql-injection.
Mijn model bestaat uit de volgende lagen:
Concreet vraag ik me af: op welke plaats kun je het beste controleren op injection?
Wat ik zelf bedacht heb maar nog niet weet wat het beste is:
In de eerste instantie wilde ik alleen een dotProject'++' maken, maar omdat ik toch nog een half programmeerseltje had liggen ben ik dat gaan verbeteren
Op dit moment ben ik aan het bekijken hoe en waar ik de beveiliging wil toepassen; voor het gemak alleen even het voorkomen van sql-injection.
Mijn model bestaat uit de volgende lagen:
code:
1
2
3
4
5
6
7
8
9
| presentatielaag (webpages) | controlelaag (controllers voor webpages) | modellaag (classes, begin van m'n framework) | abstractie (vertaalt de classes naar db-classes ed) | databaselaag (vertaalt de db-classes naar queries) |
Concreet vraag ik me af: op welke plaats kun je het beste controleren op injection?
Wat ik zelf bedacht heb maar nog niet weet wat het beste is:
- op elke laag
- alleen op de twee bovenste lagen -1 (controlelaag en abstractielaag)
- alleen op de onderste laag
- Lijkt me een overkill, maar ook weer niet (ooit worden deze lagen misschien wel uit elkaar getrokken)
- Leuk voor m'n eigen situatie, maar wat nou als iemand alleen de databaselaag gaat gebruiken?
- Werkt altijd, maar moet je helemaal tot in die laag wachten met het geven van een foutmelding? Gebruikers kunnen dan al lang heel ergens anders mee bezig zijn omdat het fysiek opslaan van data in de database niet perse direct na het verzoek van de gebruiker hoeft te gebeuren.