4 votes

Apache a-t-il une limite pour la taille des cookies ?

Un bug de l'application nous a fait définir un cookie trop grand.

Les clients reçoivent une erreur qui se produit avant l'exécution de notre application (mod_python).

Existe-t-il des limites réglables dans Apache pour la taille d'un en-tête de cookie ?

Dans les journaux d'erreurs d'Apache, je vois : request failed: error reading the headers

4voto

Drew Chapin Points 859

Voir le Directive LimitRequestLine dans la configuration d'Apache. La valeur par défaut est 8190, donc tout ce qui est supérieur à cette valeur risque de poser des problèmes.

Cette directive définit le nombre de octets qui seront autorisés sur la ligne de requête sur la ligne de requête.

La directive LimitRequestLine permet de l'administrateur du serveur de réduire ou ou d'augmenter la limite de la taille autorisée de la ligne de requête HTTP d'un client. Depuis la ligne de requête est constituée de la méthode HTTP l'URI et la version du protocole, la directive LimitRequestLine limite la longueur de la ligne de restriction sur la longueur d'une request-URI autorisée pour une requête sur le serveur. Un serveur a besoin de cette valeur soit suffisamment grande pour contenir n'importe laquelle de ses noms de ressources, y compris toute informations qui pourraient être transmises dans la partie requête d'une demande GET.

Cette directive donne au serveur un plus grand contrôle sur les comportement anormal des requêtes des clients, ce qui peut être utile pour éviter certaines formes d'attaques par déni de service.

Je crois qu'il s'agit de la limite de la somme de tous les cookies d'une page Web et non d'un cookie individuel (je n'en suis pas sûr). Mais tous les cookies d'un site web sont transmis à l'aide d'un seul en-tête de requête, donc si suffisamment de cookies se trouvent sur une page web et que la somme dépasse la valeur de la directive LimitRequestLine, il y aura des problèmes.

1 votes

En fait, je pense que pour les cookies nous voulons 'LimitRequestFieldSize', n'est-ce pas ?

1 votes

Oui, cela peut aussi aider, mais n'oubliez pas que LimitRequestLine définit la taille globale de la demande, qui contient tous les champs. Vous ne pouvez donc pas avoir une taille de champ (ou LimitRequestFieldSize) > LimitRequestLine.

0 votes

Il est également important de mentionner que pour définir une valeur plus élevée que celle par défaut, vous devez reconstruire les sources, selon la documentation : "De plus, vous ne pouvez pas le fixer plus haut que 8190 sans modifier les sources et reconstruire."

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X