Probleem/vraag: Hoe ver moet je gaan in het strippen van input van gebruikers in web apps?
Het gaat hierbij om het controleren van bijv. namen e.d.
Huidige situatie:
Met regex patterns controleer ik of namen uitsluitend uit toegestane karakters bestaan. Zo weet ik zeker dat ik in ieder geval geen troep in mijn database(s) krijg. Meestal laat ik de volgende tekens toe: A-Z, a-z, -,
Maar deze checks kennen nadelen:
- Rare karakters zoals á worden niet getolereerd. (Terwijl bij namen deze karakters niet ondenkbaar zijn)
- Daarmee wordt de gebruiksvriendelijkheid beperkt
Dit kan je oplossen door ook de rare tekens toe te staan. Al worden dan je regex patterns complexer en langer.
Toekomstige situatie:
Binnenkort ga ik om diverse redenen binnen mijn ontwikkelomgeving over van een iso-8859-15 charset naar utf-8.
UTF-8. Één van de redenen is dat ook webapps ga ontwikkelen voor klanten die ook internationaal opereren. Andere talen dus. Met UTF-8 zouden die vreemde talen geen problemen moeten zijn. Echter, nu loop ik tegen mijn probleem van het strippen//checken van input aan, er komen namelijk nog veel meer vreemde karakters bij.
Nu zat ik te denken om te gaan switchen van alleen bepaalde karakters toestaan naar alle karakters toestaan, behalve enkele verboden karakters. Nu heb ik altijd geleerd dat dit uit beveiligingsoverwegingen niet wenselijk is.
Mijn vraag is dan ook, hoe lossen jullie dit soort dingen op? En: Als jullie sommige karakters verbieden, welke karakters zijn dat dan bij jullie?
Het gaat hierbij om het controleren van bijv. namen e.d.
Huidige situatie:
Met regex patterns controleer ik of namen uitsluitend uit toegestane karakters bestaan. Zo weet ik zeker dat ik in ieder geval geen troep in mijn database(s) krijg. Meestal laat ik de volgende tekens toe: A-Z, a-z, -,
Maar deze checks kennen nadelen:
- Rare karakters zoals á worden niet getolereerd. (Terwijl bij namen deze karakters niet ondenkbaar zijn)
- Daarmee wordt de gebruiksvriendelijkheid beperkt
Dit kan je oplossen door ook de rare tekens toe te staan. Al worden dan je regex patterns complexer en langer.
Toekomstige situatie:
Binnenkort ga ik om diverse redenen binnen mijn ontwikkelomgeving over van een iso-8859-15 charset naar utf-8.
UTF-8. Één van de redenen is dat ook webapps ga ontwikkelen voor klanten die ook internationaal opereren. Andere talen dus. Met UTF-8 zouden die vreemde talen geen problemen moeten zijn. Echter, nu loop ik tegen mijn probleem van het strippen//checken van input aan, er komen namelijk nog veel meer vreemde karakters bij.
Nu zat ik te denken om te gaan switchen van alleen bepaalde karakters toestaan naar alle karakters toestaan, behalve enkele verboden karakters. Nu heb ik altijd geleerd dat dit uit beveiligingsoverwegingen niet wenselijk is.
Mijn vraag is dan ook, hoe lossen jullie dit soort dingen op? En: Als jullie sommige karakters verbieden, welke karakters zijn dat dan bij jullie?