Quelle est la limite des paramètres QueryString / GET / URL ?
Connaissez-vous une liste des principaux composants (souvent utilisés) qui ont cette limite ?
Quelle est la limite des paramètres QueryString / GET / URL ?
Il n'y a pas de limite en théorie. Pour les URLs HTTP, le Spécification HTTP 1.1 États :
Le protocole HTTP n'impose pas de limite a priori sur la longueur de l'adresse IP. d'un URI. Les serveurs DOIVENT être en mesure de traiter l'URI de toute ressource qu'ils ressources qu'ils servent, et DEVRAI être en mesure de traiter des URI de longueur non limitée s'ils fournissent des formulaires basés sur GET qui pourraient générer de tels URI. Un serveur DEVRAIT renvoyer le statut 414 (Request-URI Too Long) si un URI est plus long que le serveur peut gérer (voir la section 10.4.15).
Mais en pratique, de nombreux clients et serveurs ne prennent en charge que les URL d'une certaine longueur. Le site La règle générale est de ne pas utiliser d'URL de plus de 2000 caractères. (le codage en pourcentage est déjà pris en compte).
Connaissez-vous une liste des principaux composants (souvent utilisés) qui ont cette limite ?
L'article en lien est un excellent aperçu (bien que daté) de la façon dont les différents navigateurs/systèmes gèrent ce problème.
Il n'y a pas de limite définie. Cependant, la RFC 2068 indique :
Le protocole HTTP ne fixe aucune limite a priori à la longueur d'un URI. Les serveurs DOIVENT être capables de traiter l'URI de toute ressource qu'ils servent, et DEVRAIENT être capables de traiter des URI de longueur non limitée s'ils fournissent des formulaires basés sur GET qui pourraient générer de tels URI. Un serveur DEVRAIT renvoyer l'état 414 (Request-URI Too Long) si un URI est plus long que ce que le serveur peut gérer (voir section 10.4.15). Remarque : les serveurs doivent être prudents lorsqu'ils dépendent de longueurs d'URI supérieures à 255 octets, car certaines implémentations plus anciennes de clients ou de mandataires peuvent ne pas supporter correctement ces longueurs.
Bien qu'officiellement aucune limite ne soit spécifiée par la RFC 2616, de nombreux protocoles et recommandations en matière de sécurité stipulent que les maxQueryStrings sur un serveur doivent être fixées à une limite maximale de 1024 caractères. L'URL entière, y compris la chaîne de requête, ne doit pas dépasser 2048 caractères. Cette mesure vise à prévenir la vulnérabilité DDOS des requêtes HTTP lentes sur un serveur web. Celle-ci apparaît généralement comme une vulnérabilité sur le Qualys Web Application Scanner et d'autres scanners de sécurité.
Veuillez consulter le code d'examen ci-dessous pour les serveurs Windows IIS avec Web.config :
Cela fonctionnerait également au niveau du serveur en utilisant machine.config.
Remarque : limiter la longueur des chaînes de requête et des URL ne permet pas d'empêcher complètement l'attaque DDOS "Slow HTTP Requests", mais c'est une mesure que vous pouvez prendre pour l'éviter.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
2 votes
Duplication possible de Quelle est la longueur maximale possible d'une chaîne de requête ?