URL HTTP - caractères autorisés dans les noms de paramètres
-
03-07-2019 - |
Question
Existe-t-il une restriction formelle quant aux caractères autorisés dans les noms de paramètre d'URL?
Je lis RFC3986 (" identificateur de ressource uniforme (URI): syntaxe générique " ;) mais n’a pas abouti à une conclusion définitive.
Je sais qu'il existe des limitations pratiques, mais serait-il réellement interdit de faire quelque chose du genre:
param with\funny<chars>=some_value
tant que j'y échappe correctement:
param%20with%1cfunny%3cchars%3e=some_value
La solution
Il n'y a aucune restriction sur les noms de paramètres d'échappement dans les spécifications d'URI. Le logiciel côté serveur que vous utilisez peut toutefois contenir des restrictions. Cela est particulièrement vrai si vous utilisez des scripts «maison» pour interpréter les URI.
Autres conseils
Vous devriez également lire RFC2396 . Il semble être plus informatif que RFC3986.
Il y a des caractères réservés pour les URL, mais tant que vous échappez (urlencode), tout devrait bien se passer.
En fonction du cadre utilisé, vous pouvez obtenir des exceptions si vous essayez de soumettre des valeurs suspectes. ASP.NET dispose d'un filtrage de contenu qui génère des exceptions si vous essayez de soumettre le message "non sécurisé". les données, comme les scripts ou HTML. Cependant, il s’agit d’une caractéristique du cadre plutôt que d’une limitation ou d’une règle imposée par la syntaxe de l’URL.