web-dev-qa-db-fra.com

Quel est le risque de sécurité d'activer la connexion persistante (HTTP Keep-Vive)?

À mon avis, l'en-tête HTTP Keep-Alive dicte si le prochain paquet de communication sera envoyé par-dessus la même connexion ou non, c'est-à-dire que si l'application Web est exécutée sur SSL, et un service de conservation est activé pour, disons 60 secondes, alors:

[.____] - Toute communication client-serveur aura lieu sur la même connexion
[.____] - Toute communication client-serveur après 60 secondes d'inactivité réinitialisera la poignée de main SSL puis procéder à des demandes et des repsonses.

En outre, comment est-ce connecté à un délai d'inactivité de la session d'utilisateur?

5
Hrishabh Sobti

si le prochain paquet de communication sera envoyé sur la même connexion ou non

Presque mais pas exactement. Il n'y a pas de "paquet" à ce niveau de communication, juste un flux de données. HTTP-Keep-Alive permettra de multiples demandes HTTP sur la même connexion TCP/TLS au lieu d'un seul en ne fermant pas la connexion immédiatement après la réponse HTTP, mais la maintenance plutôt sur plus de demandes.

HTTP Keeph Alive Header Dictate

Non, ça ne dicte rien. En ajoutant Connection: keep-alive à la requête (ou implicitement en utilisant http/1.1 au lieu de http/1.0), le client demande poliment du serveur de ne pas fermer le TCP Connection après la réponse. Le serveur pourrait d'accord ou cela pourrait ne pas.

toute communication client-serveur aura lieu sur la même connexion

Pas nécessairement. Il peut y avoir plusieurs connexions TCP/TLS ouvertes en parallèle entre le navigateur et le serveur.

toute communication client-serveur après 60 secondes d'inactivité réinitialisera la poignée de main SSL puis procéder à des demandes et des repsonses.

Client and Server peut décider de fermer la connexion inactive (c'est-à-dire aucune réponse exceptionnelle) à tout moment et à la fois de leurs paramètres et minuteries indépendants. Si la connexion est fermée et que le client souhaite effectuer une nouvelle demande, il doit créer un nouveau TCP Connection et pour HTTPS, il a besoin soit de reprendre une session SSL existante en haut de ceci ====TCP connexion ou faire une poignée de main TLS complète pour une nouvelle session SSL.

En outre, comment est-ce connecté à un délai d'inactivité de la session d'utilisateur?

Ceci est complètement sans rapport. Les sessions utilisateur sont gérées au niveau de l'application. HTTP Keep Alive est géré au niveau du protocole HTTP. Vous pouvez avoir plusieurs sessions utilisateur dans un seul TCP (avec plusieurs demandes HTTP) et vous pouvez également conserver une session utilisateur sur plusieurs TCP Connections ( les deux après les autres et aussi des connexions parallèles).

Quel est le risque de sécurité d'activer la connexion persistante (HTTP Keep-Vive)?

Il n'y en a pas.

2
Steffen Ullrich