web-dev-qa-db-fra.com

Quelle est la limite des paramètres QueryString / GET / URL

Quelle est la limite des paramètres QueryString/GET/URL

53
Lalchand

Il n'y a pas de limite en théorie. Pour les URL HTTP, la spécification HTTP 1.1 indique:

Le protocole HTTP ne place aucune limite a priori sur la longueur d'un URI. Les serveurs DOIVENT être capables de gérer l'URI de toute ressource qu'ils servent, et DEVRAIENT être capables de gérer des URI de longueur illimitée s'ils fournissent des formulaires basés sur GET qui pourraient générer de tels URI. Un serveur DEVRAIT retourner le statut 414 (Request-URI Too Long) si un URI est plus long que ce que le serveur peut gérer (voir la section 10.4.15).

Mais dans la pratique, de nombreux clients et serveurs ne prennent en charge que les URL jusqu'à une certaine longueur. la règle générale est de ne pas utiliser d'URL de plus de 2000 caractères (pourcentage d'encodage déjà pris en compte).

60
Gumbo

Il n'y a pas de limite définie. Cependant, la RFC 2068 indique:

Le protocole HTTP ne place aucune limite a priori sur la longueur d'un URI. Les serveurs DOIVENT être capables de gérer l'URI de toute ressource qu'ils servent, et DEVRAIENT être capables de gérer des URI de longueur illimitée s'ils fournissent des formulaires basés sur GET qui pourraient générer de tels URI. Un serveur DEVRAIT retourner le statut 414 (Request-URI Too Long) si un URI est plus long que ce que le serveur peut gérer (voir la section 10.4.15). Remarque: Les serveurs doivent être prudents en fonction des longueurs d'URI supérieures à 255 octets, car certaines anciennes implémentations client ou proxy peuvent ne pas prendre correctement en charge ces longueurs.

5
Matteo Mosca

Bien qu'il n'y ait officiellement aucune limite, de nombreuses recommandations de configuration de sécurité stipulent que maxQueryStrings sur un serveur doit être défini sur une limite de caractères maximale de 1024 tandis que l'url entière, y compris la chaîne de requête, doit être définie sur un maximum de 2048 caractères. Il s'agit d'empêcher la vulnérabilité Slow HTTP Request sur un serveur Web de prévenir les attaques DDOS lentes qui apparaissent sur le scanner d'application Web Qualys et d'autres scanners de sécurité.

Veuillez consulter le code ci-dessous pour Windows IIS Serveurs avec Web.config:

<security>
    <requestFiltering>
        <requestLimits maxQueryString="1024" maxUrl="2048">
           <headerLimits>
              <add header="Content-type" sizeLimit="100" />
           </headerLimits>
        </requestLimits>
     </requestFiltering>
</security>
0
TroySteven