Si vous avez pour traiter des chaînes, alors la liste blanche est votre meilleur pari. Tout d'abord, sortDirection
devrait être assez trivial pour la liste blanche :une comparaison insensible à la casse avec "asc"
/ "desc"
et vous devriez être prêt. Pour les autres, ma préférence serait de mettre en liste blanche les colonnes connues , peut-être en transmettant le Type
attendu pour les données et la validation. Mais à la rigueur, vous pouvez restreindre avec regex pour (disons) imposer qu'ils sont tous strictement alphanumérique (dans la plage a-z, A-Z, 0-9 - peut-être souligné si nécessaire) - puis ajoutez []
, c'est-à-dire
return string.Format("[{0}] {1}", sortColumn, sortDirection);
Mais :une liste blanche stricte des colonnes connues serait bien meilleure, tout comme une énumération pour la direction.