4. Security Considerations (Considérations de sécurité)
Un modèle URI ne contient pas de contenu actif ou exécutable. Cependant, il pourrait être possible de créer des URI inattendus si un attaquant obtient le contrôle du modèle ou des valeurs de variables dans une expression qui autorise les caractères réservés dans l'expansion. Dans les deux cas, les considérations de sécurité sont largement déterminées par qui fournit le modèle, qui fournit les valeurs à utiliser pour les variables dans le modèle, dans quel contexte d'exécution l'expansion se produit (client ou serveur), et où les URI résultants sont utilisés.
Cette spécification ne limite pas où les modèles URI peuvent être utilisés. Les implémentations actuelles existent dans les frameworks de développement côté serveur et dans JavaScript côté client pour les liens ou formulaires calculés.
Dans les frameworks, les modèles agissent généralement comme des guides pour indiquer où les données peuvent se produire dans les URI ultérieurs (au moment de la requête) dans les requêtes client. Par conséquent, les préoccupations de sécurité ne concernent pas les modèles eux-mêmes, mais plutôt la façon dont le serveur extrait et traite les données fournies par l'utilisateur dans une requête Web normale.
Dans les implémentations côté client, un modèle URI a de nombreuses propriétés identiques aux formulaires HTML, sauf qu'il est limité aux caractères URI et peut être inclus dans les valeurs de champs d'en-tête HTTP au lieu de simplement le contenu du corps du message. Il convient de veiller à ce que les chaînes de référence URI potentiellement dangereuses, telles que celles commençant par "javascript:", n'apparaissent pas dans l'expansion à moins que le modèle et les valeurs ne soient fournis par une source de confiance.
Les autres considérations de sécurité sont les mêmes que celles des URI, comme décrit dans la Section 7 de [RFC3986].