Ik kon een ouder topic van mij omhoogschoppen, maar ik denk dat het opportuner is om met een schone lei te beginnen.
Sedert enkele weken/maanden ben ik zo lichtjes aan 'into webapplication development' gegaan.
Nu, zoals jullie wel weten moet je 'users' en de 'evil buitenwereld' niet al teveel vertrouwen als het gaat om user-input in je databank. Iemand met kwade bedoelingen zou wel eens javascript / SQL of andere ongewenste meuk in je databank kunnen proppen en zo je applicatie/data naar de vaantjes kunnen helpen.
Nu zat ik me af te vragen hoe je die ongewenste input het best opvangt en waar je die het best opvangt (zie ook dit topic).
Je kunt bepaalde input (namen, emailadressen, ...) met regular expressions gaan 'validaten' en eventueel ongewenste karakters eruithalen of een melding geven dat er ongewenste karakters inzitten.
Daarnaast kan je ook in .NET dmv HttpServerUtility.HtmlEncode je data gaan escapen en die dan zo in de databank gaan zetten. Ingegeven < en > karakters enzo blijven dan gewoon bestaan, maar zullen in het geval van bv <b></b> niet als html aanzien worden.
Qua SQL gebruik ik altijd/meestal enkel stored procedures om gegevensmanipulatie/selectie te verwezenlijken. Dan moet je natuurlijk er wel voor zorgen dat de gebruikers enkel de rechten hebben om die SP's uit te voeren.
Nu, zijn er nog andere/betere manieren om die ongewenste input te voorkomen? Hoe vang je die het beste op? Waar vang je die het beste op? In je business logic, presentatie-laag, data-laag? In alle lagen?
https://fgheysels.github.io/