URL HTTP - caractères autorisés dans les noms de paramètres
Est-il formel restriction à laquelle les caractères sont autorisés dans les paramètre de l'URL de noms?
J'ai lu RFC3986 ("Identificateur de Ressource Uniforme (URI): Syntaxe Générique"), mais en est arrivé à aucune conclusion définitive.
Je sais qu'il ya des limites, mais ne serait-il réellement être interdit de faire quelque chose comme:
avec param\drôle<caractères>=some_value
tant que j'y échapper correctement:
param%20with%1cfunny%3cchars%3e=some_value
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de restrictions sur les échappé à des noms de paramètre dans l'URI de spécifications. Il pourrait y avoir des restrictions dans les du côté serveur, le logiciel que vous utilisez, cependant. Cela est particulièrement vrai si vous utilisez le “fait maison” des scripts pour interpréter les Uri.
&
comme délimiteur n'est qu'une convention; d'autres pourraient être utilisés au lieu, par exemple,,
et;
utilisé beaucoup. Aussi, de nombreux serveur moteurs (PHP, Rails, ...) support imbriquée arguments, donc, ce serait être un URI avec la requête: example.com/?a=b;c[1]=x;c[2]=y ... beaucoup d'applications web en fait utiliser cette requête de notation pour les données de formulaire (options, des cases à cocher ...) pour obtenir la matrice de données.2017-10-15.jpg
et je veux qu'il affiche lorsque j'utiliseshowplot.htm?dt=2017-10-15
avec le Javascript lignedocument.write('<img src="' + dt + '.jpg"/>')
- et il ne fonctionne pas. Il affiche tout sauf les lignes où j'essaie d'enchaîner comme ça. Est-ce parce qu'il ne peut pas gérer les traits d'union?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 aussi longtemps que vous échapper (urlencode), alors vous devriez être bien.
Selon le cadre utilisé, vous pouvez obtenir des exceptions si vous essayez d'envoyer suspect valeurs. ASP.NET a de filtrage de contenu qui permettra de lancer des exceptions si vous essayez d'envoyer "dangereux" de données, tels que des scripts ou HTML. C'est une fonctionnalité du cadre mais plutôt que d'une limitation ou d'une règle appliquée par la syntaxe de l'URL.