SQL-injectie is in de meeste gevallen gemakkelijk te vermijden door het gebruik van voorbereide instructies.
XSS is moeilijker als u van plan bent gebruikers toe te staan HTML-opmaak te posten. U moet alle <script>
. verwijderen tags, allemaal on*
attributen van tags, allemaal javascript:
urls, en zelfs dan is dat waarschijnlijk niet volledig gegarandeerd om de HTML-invoer veilig te maken. Er zijn bibliotheken zoals HTMLPurifier
dat kan helpen, maar zolang je HTML toestaat, loop je het risico iets kwaadaardigs door te laten.
Je zou in plaats daarvan een bibliotheek kunnen gebruiken die iets als markdown of wikitekst implementeert. Dit beperkt ernstig wat gebruikers kunnen invoeren, terwijl ze de inhoud nog steeds tot op zekere hoogte kunnen markeren. Het is niet volledig bewijs (mensen kunnen nog steeds gewoon links naar kwaadaardige sites plaatsen en hopen dat gebruikers ernaar doorklikken, wat sommigen naïef genoeg zullen zijn om dat ook daadwerkelijk te doen), en je zult niet in staat zijn om een uitgebreide editor zoals TinyMCE te gebruiken zonder enige vorm van van plug-in, maar het is een veel eenvoudiger taak om markdown op te schonen dan om HTML te zuiveren.