De simpelste weg om je data te beveiligen is om ze niet bereikbaar te hebben, zoals ze niet online te hebben. Zeg maar de bekende "air gap" beveiliging. Daarmee voorkom je dat als er perongeluk iets open staat of kapot blijkt te kunnen, de data gejat kan worden. Simpel, niet?
Daarna: Beveiligingslekken zijn meestal vrij geniepig. Een SQL injectie is een "quoting"probleem. Dat is best te ondervangen en met standaardmethodes ben je een eind op weg. Uiteindelijk moet je het hele proces snappen en dan kun je zo volgen hoe zoiets werkt, en dan kun je ook uitvogelen hoe je je ertegen moet verdedigen. Maar het is slechts een van de vele vormen van geniep. Beetje teveel werk om dat zo even uit te leggen.
Er zijn er meer. Iedere keer dat er data van vreemde oorsprong binnenkomt loop je een zeker risico. PHP was altijd berucht door het gemak waarmee je als buitenstaander scriptvariablen kon invullen. Waarmee alle invoercontrole simpelweg omzeild wordt.
Van ASP weet ik dat het redmondspecifiek is. Wat dan weer bovenop hun webserver zal draaien, en dan het OS eronder, allemaal dingen die ik niet zondermeer aan het internet zou willen hangen.
HTML kan de webserver in principe zo recht toe recht aan als bestandje serveren (en dat kan tegenwoordig heel efficient en dus snel) zonder dat er verdere instructies uitgevoerd worden op de server. Wil je toch weer ingewikkelder zaken met je webpaginas, kun je naar javascript grijpen. Nadeel is dan weer dat dit en makkelijk nodeloos langzaam wordt voor je klant en dat je makkelijk "cross-site scripting"-lekken kan creeren. Dit is niet specifiek op kale HTML, overigens; een willekeurige scripttaal op je servert met js in de browser geeft zomogelijk nog meer gedonder, want complexer.
Er zijn wel meer manieren om HTML te genereren. ruby on rails was een tijdje heel populair, java ("servlets") is groot in de wereld van het grootbedrijf, python is populair tegenwoordig, noem maar op. Je kan zelfs je webpaginas per template engine na iedere wijziging "statisch" genereren en dat dan op je webserver te parkeren als op te dienen kale html.
Maar je zal nog wat meer rond moeten kijken, naar wat er kan en wat de verschillende risicos zijn. Er is niet zomaar een enkele "beste", dat ligt heel erg aan wat je wil en dan komt er ook nog je persoonlijke voorkeur kijken. Mijn voorkeur is heel sterk om zoveel mogelijk met html+css en verder niets te doen, server side scripts te bewaren voor dingen die echt niet zonder kunnen, en client side javascript ook te beperken tot oftewel dingen die echt niet anders kunnen oftewel zo te gebruiken dat als javascript uitstaat dat de site wellicht minder soepeltjes maar nog steeds correct werkt.
Zo hou je de boel simpel. En hoe simpeler, hoe makkelijker de beveiligingsgaten te voorkomen, te vinden, en te vullen zijn.