Les codeurs conquièrent la sécurité : Série "Partageons et apprenons" - Faiblesses de la gestion des sessions
Vous vous rendez sur un site web et vous vous connectez. Comme d'habitude, vous remplissez votre panier avec les produits que vous souhaitez acheter. Puis, oups, votre main glisse et ferme l'onglet du navigateur. Après une petite panique, vous entrez à nouveau l'URL du site dans le navigateur et appuyez sur la touche "Entrée". Vous revenez sur le site, vous êtes connecté et tous vos articles sont encore dans le panier. C'est bien.
Comment le site a-t-il su qui vous étiez sans vous ré-authentifier ? Il vous a identifié parce qu'il utilisait des sessions. Les sessions sont la clé d'une bonne expérience utilisateur sur le web. Cependant, une mauvaise gestion des sessions peut entraîner des failles de sécurité que les pirates peuvent exploiter.
Voyons maintenant ce que signifie la gestion des sessions, comment une gestion insuffisante des sessions peut vous nuire et ce que vous pouvez faire pour gérer correctement les sessions.
Comprendre les faiblesses de la gestion des sessions
Une session fait référence à une valeur stockée sur le serveur, spécifique à un seul utilisateur de l'application. Cela est nécessaire pour deux raisons : Premièrement, HTTP est un protocole sans état. Chaque demande est distincte et ne connaît pas les demandes qui l'ont précédée ou suivie. Une session permet au serveur de savoir qui a envoyé la requête. Sinon, vous devriez vous connecter chaque fois que vous cliquez sur un bouton ou un lien.
La deuxième raison d'être des sessions est l'autorisation de l'utilisateur. L'identifiant de session peut être utilisé pour reconnaître un utilisateur spécifique disposant de droits spécifiques au sein du système. L'application saura qui est cette personne et ce qu'elle est autorisée à faire.
Une session se compose de deux éléments. Un magasin de données côté serveur stocke un identifiant de session et l'associe à des informations sur l'utilisateur, telles que son nom d'utilisateur ou les informations relatives à son panier. Le même identifiant de session est envoyé au navigateur dans un cookie. Les cookies sont stockés par le navigateur sur le système de l'utilisateur. Le client transmet le cookie à chaque demande, ce qui permet au serveur de savoir que cette demande provient du même utilisateur. La plupart des applications utilisent les sessions pour suivre les utilisateurs avant et après l'authentification.
Une bonne gestion des sessions est essentielle à la sécurité d'une application. Un identifiant de session valide a le même niveau de confiance qu'un nom d'utilisateur/mot de passe, ou même qu'un jeton d'authentification à deuxième facteur.
Pourquoi une mauvaise gestion des sessions est dangereuse
Une mauvaise gestion des sessions peut conduire à une prise de contrôle totale du compte. Cela signifie que les données des clients peuvent être volées ou que des produits peuvent être achetés frauduleusement. Les attaquants disposent de plusieurs moyens pour obtenir un identifiant de session valide.
Une attaque par fixation de session se produit lorsque les sessions ne sont pas modifiées à des moments clés, comme lorsqu'un utilisateur se connecte au système, et si les identifiants de session peuvent être définis à l'aide de l'URL. La définition d'identifiants de session de cette manière peut être utilisée pour maintenir la connexion des utilisateurs dans différentes applications qui utilisent la même source d'authentification. Dans ce cas, un pirate peut naviguer sur un site web et obtenir un identifiant de session. Il envoie ensuite un URL à une victime peu méfiante par courrier électronique, avec l'identifiant de session dans l'URL. La victime clique sur l'URL du courriel et se connecte au site web. Si l'identifiant de session n'est pas modifié lors de la connexion, le pirate dispose alors d'un identifiant de session valide et authentifié. Cela permet une prise de contrôle complète du compte.
Une autre attaque contre une mauvaise gestion des sessions est une attaque par force brute. Lorsque les développeurs essaient de créer leurs propres systèmes de gestion de session, ils utilisent souvent des identifiants de session qui sont assez faciles à deviner. Il peut s'agir d'une séquence (1, 2, 3) ou d'un schéma prévisible. L'attaquant continue simplement à deviner les identifiants de session jusqu'à ce qu'il en découvre un valide. Cela conduit également à la prise de contrôle d'un compte.
Les sessions qui ne sont pas invalidées automatiquement après un certain temps peuvent être exploitées pour attaquer les utilisateurs. La réussite d'une attaque de type "cross-site request forgery " dépend des sessions qui sont encore valides après que l'utilisateur a quitté le site. Supposons qu'un pirate place une iframe ou une image sur un site visité par l'utilisateur. L'attribut "src" (source) est défini sur l'URL du site vulnérable et exécute une action au nom de l'utilisateur. Par exemple, une application bancaire vulnérable pourrait être utilisée pour transférer de l'argent sur le compte d'un attaquant sans l'autorisation de l'utilisateur.
La gestion des sessions peut être délicate et les faiblesses peuvent être dévastatrices. Il s'agit toutefois d'un problème bien connu qui peut être résolu.
Déjouer la gestion des sessions non sécurisées
La gestion des sessions est un élément essentiel de toute application web. C'est pourquoi de nombreux cadres de développement web intègrent une fonctionnalité de gestion des sessions. Ces systèmes ont été examinés de près par des experts afin de détecter et d'éliminer les problèmes. Utilisez-les.
Voici quelques-unes des caractéristiques communes d'une bonne gestion de session:
Génération d'identifiants de session aléatoires que les attaquants ne peuvent pas deviner
Les sessions sont invalidées lorsqu'un utilisateur se déconnecte.
Les sessions sont automatiquement invalidées après un certain temps.
Les identifiants de session sont modifiés après la connexion de l'utilisateur.
Les identifiants de session ont une longueur d'au moins 128 bits afin d'éviter les attaques par force brute.
Les frameworks web tels que Spring, ASP.NET Core, Rails et Django possèdent ces propriétés et devraient être utilisés pour leurs normes de sécurité plus élevées dans ce cas.
Conclusion : Ne créez pas votre propre système de gestion des sessions à partir de zéro.
Une fois les identifiants de session créés, ils doivent être protégés. Attribuez la valeur "true" aux indicateurs Secure et HttpOnly pour les cookies de session. Cela garantit que leur valeur ne peut pas être récupérée avec JavaScript et que le navigateur n'enverra le cookie que via HTTPS, empêchant ainsi les attaquants de voler la session de quelqu'un en cours de route.
Sécurisez vos sessions
Consultez nos ressources d'apprentissage gratuites pour en savoir plus sur la gestion sécurisée des sessions. Apprendre à sécuriser vos sessions vous aidera à prévenir la prise de contrôle des comptes utilisateurs, les atteintes à la réputation et les pertes de revenus dues aux failles de sécurité. Sécurisez vos sessions et protégez vos utilisateurs.


Les sessions sont la clé d'une bonne expérience utilisateur lors de l'utilisation du web. Cependant, une mauvaise gestion des sessions peut entraîner des failles de sécurité que les pirates peuvent exploiter.
Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstrationJaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.


Vous vous rendez sur un site web et vous vous connectez. Comme d'habitude, vous remplissez votre panier avec les produits que vous souhaitez acheter. Puis, oups, votre main glisse et ferme l'onglet du navigateur. Après une petite panique, vous entrez à nouveau l'URL du site dans le navigateur et appuyez sur la touche "Entrée". Vous revenez sur le site, vous êtes connecté et tous vos articles sont encore dans le panier. C'est bien.
Comment le site a-t-il su qui vous étiez sans vous ré-authentifier ? Il vous a identifié parce qu'il utilisait des sessions. Les sessions sont la clé d'une bonne expérience utilisateur sur le web. Cependant, une mauvaise gestion des sessions peut entraîner des failles de sécurité que les pirates peuvent exploiter.
Voyons maintenant ce que signifie la gestion des sessions, comment une gestion insuffisante des sessions peut vous nuire et ce que vous pouvez faire pour gérer correctement les sessions.
Comprendre les faiblesses de la gestion des sessions
Une session fait référence à une valeur stockée sur le serveur, spécifique à un seul utilisateur de l'application. Cela est nécessaire pour deux raisons : Premièrement, HTTP est un protocole sans état. Chaque demande est distincte et ne connaît pas les demandes qui l'ont précédée ou suivie. Une session permet au serveur de savoir qui a envoyé la requête. Sinon, vous devriez vous connecter chaque fois que vous cliquez sur un bouton ou un lien.
La deuxième raison d'être des sessions est l'autorisation de l'utilisateur. L'identifiant de session peut être utilisé pour reconnaître un utilisateur spécifique disposant de droits spécifiques au sein du système. L'application saura qui est cette personne et ce qu'elle est autorisée à faire.
Une session se compose de deux éléments. Un magasin de données côté serveur stocke un identifiant de session et l'associe à des informations sur l'utilisateur, telles que son nom d'utilisateur ou les informations relatives à son panier. Le même identifiant de session est envoyé au navigateur dans un cookie. Les cookies sont stockés par le navigateur sur le système de l'utilisateur. Le client transmet le cookie à chaque demande, ce qui permet au serveur de savoir que cette demande provient du même utilisateur. La plupart des applications utilisent les sessions pour suivre les utilisateurs avant et après l'authentification.
Une bonne gestion des sessions est essentielle à la sécurité d'une application. Un identifiant de session valide a le même niveau de confiance qu'un nom d'utilisateur/mot de passe, ou même qu'un jeton d'authentification à deuxième facteur.
Pourquoi une mauvaise gestion des sessions est dangereuse
Une mauvaise gestion des sessions peut conduire à une prise de contrôle totale du compte. Cela signifie que les données des clients peuvent être volées ou que des produits peuvent être achetés frauduleusement. Les attaquants disposent de plusieurs moyens pour obtenir un identifiant de session valide.
Une attaque par fixation de session se produit lorsque les sessions ne sont pas modifiées à des moments clés, comme lorsqu'un utilisateur se connecte au système, et si les identifiants de session peuvent être définis à l'aide de l'URL. La définition d'identifiants de session de cette manière peut être utilisée pour maintenir la connexion des utilisateurs dans différentes applications qui utilisent la même source d'authentification. Dans ce cas, un pirate peut naviguer sur un site web et obtenir un identifiant de session. Il envoie ensuite un URL à une victime peu méfiante par courrier électronique, avec l'identifiant de session dans l'URL. La victime clique sur l'URL du courriel et se connecte au site web. Si l'identifiant de session n'est pas modifié lors de la connexion, le pirate dispose alors d'un identifiant de session valide et authentifié. Cela permet une prise de contrôle complète du compte.
Une autre attaque contre une mauvaise gestion des sessions est une attaque par force brute. Lorsque les développeurs essaient de créer leurs propres systèmes de gestion de session, ils utilisent souvent des identifiants de session qui sont assez faciles à deviner. Il peut s'agir d'une séquence (1, 2, 3) ou d'un schéma prévisible. L'attaquant continue simplement à deviner les identifiants de session jusqu'à ce qu'il en découvre un valide. Cela conduit également à la prise de contrôle d'un compte.
Les sessions qui ne sont pas invalidées automatiquement après un certain temps peuvent être exploitées pour attaquer les utilisateurs. La réussite d'une attaque de type "cross-site request forgery " dépend des sessions qui sont encore valides après que l'utilisateur a quitté le site. Supposons qu'un pirate place une iframe ou une image sur un site visité par l'utilisateur. L'attribut "src" (source) est défini sur l'URL du site vulnérable et exécute une action au nom de l'utilisateur. Par exemple, une application bancaire vulnérable pourrait être utilisée pour transférer de l'argent sur le compte d'un attaquant sans l'autorisation de l'utilisateur.
La gestion des sessions peut être délicate et les faiblesses peuvent être dévastatrices. Il s'agit toutefois d'un problème bien connu qui peut être résolu.
Déjouer la gestion des sessions non sécurisées
La gestion des sessions est un élément essentiel de toute application web. C'est pourquoi de nombreux cadres de développement web intègrent une fonctionnalité de gestion des sessions. Ces systèmes ont été examinés de près par des experts afin de détecter et d'éliminer les problèmes. Utilisez-les.
Voici quelques-unes des caractéristiques communes d'une bonne gestion de session:
Génération d'identifiants de session aléatoires que les attaquants ne peuvent pas deviner
Les sessions sont invalidées lorsqu'un utilisateur se déconnecte.
Les sessions sont automatiquement invalidées après un certain temps.
Les identifiants de session sont modifiés après la connexion de l'utilisateur.
Les identifiants de session ont une longueur d'au moins 128 bits afin d'éviter les attaques par force brute.
Les frameworks web tels que Spring, ASP.NET Core, Rails et Django possèdent ces propriétés et devraient être utilisés pour leurs normes de sécurité plus élevées dans ce cas.
Conclusion : Ne créez pas votre propre système de gestion des sessions à partir de zéro.
Une fois les identifiants de session créés, ils doivent être protégés. Attribuez la valeur "true" aux indicateurs Secure et HttpOnly pour les cookies de session. Cela garantit que leur valeur ne peut pas être récupérée avec JavaScript et que le navigateur n'enverra le cookie que via HTTPS, empêchant ainsi les attaquants de voler la session de quelqu'un en cours de route.
Sécurisez vos sessions
Consultez nos ressources d'apprentissage gratuites pour en savoir plus sur la gestion sécurisée des sessions. Apprendre à sécuriser vos sessions vous aidera à prévenir la prise de contrôle des comptes utilisateurs, les atteintes à la réputation et les pertes de revenus dues aux failles de sécurité. Sécurisez vos sessions et protégez vos utilisateurs.

Vous vous rendez sur un site web et vous vous connectez. Comme d'habitude, vous remplissez votre panier avec les produits que vous souhaitez acheter. Puis, oups, votre main glisse et ferme l'onglet du navigateur. Après une petite panique, vous entrez à nouveau l'URL du site dans le navigateur et appuyez sur la touche "Entrée". Vous revenez sur le site, vous êtes connecté et tous vos articles sont encore dans le panier. C'est bien.
Comment le site a-t-il su qui vous étiez sans vous ré-authentifier ? Il vous a identifié parce qu'il utilisait des sessions. Les sessions sont la clé d'une bonne expérience utilisateur sur le web. Cependant, une mauvaise gestion des sessions peut entraîner des failles de sécurité que les pirates peuvent exploiter.
Voyons maintenant ce que signifie la gestion des sessions, comment une gestion insuffisante des sessions peut vous nuire et ce que vous pouvez faire pour gérer correctement les sessions.
Comprendre les faiblesses de la gestion des sessions
Une session fait référence à une valeur stockée sur le serveur, spécifique à un seul utilisateur de l'application. Cela est nécessaire pour deux raisons : Premièrement, HTTP est un protocole sans état. Chaque demande est distincte et ne connaît pas les demandes qui l'ont précédée ou suivie. Une session permet au serveur de savoir qui a envoyé la requête. Sinon, vous devriez vous connecter chaque fois que vous cliquez sur un bouton ou un lien.
La deuxième raison d'être des sessions est l'autorisation de l'utilisateur. L'identifiant de session peut être utilisé pour reconnaître un utilisateur spécifique disposant de droits spécifiques au sein du système. L'application saura qui est cette personne et ce qu'elle est autorisée à faire.
Une session se compose de deux éléments. Un magasin de données côté serveur stocke un identifiant de session et l'associe à des informations sur l'utilisateur, telles que son nom d'utilisateur ou les informations relatives à son panier. Le même identifiant de session est envoyé au navigateur dans un cookie. Les cookies sont stockés par le navigateur sur le système de l'utilisateur. Le client transmet le cookie à chaque demande, ce qui permet au serveur de savoir que cette demande provient du même utilisateur. La plupart des applications utilisent les sessions pour suivre les utilisateurs avant et après l'authentification.
Une bonne gestion des sessions est essentielle à la sécurité d'une application. Un identifiant de session valide a le même niveau de confiance qu'un nom d'utilisateur/mot de passe, ou même qu'un jeton d'authentification à deuxième facteur.
Pourquoi une mauvaise gestion des sessions est dangereuse
Une mauvaise gestion des sessions peut conduire à une prise de contrôle totale du compte. Cela signifie que les données des clients peuvent être volées ou que des produits peuvent être achetés frauduleusement. Les attaquants disposent de plusieurs moyens pour obtenir un identifiant de session valide.
Une attaque par fixation de session se produit lorsque les sessions ne sont pas modifiées à des moments clés, comme lorsqu'un utilisateur se connecte au système, et si les identifiants de session peuvent être définis à l'aide de l'URL. La définition d'identifiants de session de cette manière peut être utilisée pour maintenir la connexion des utilisateurs dans différentes applications qui utilisent la même source d'authentification. Dans ce cas, un pirate peut naviguer sur un site web et obtenir un identifiant de session. Il envoie ensuite un URL à une victime peu méfiante par courrier électronique, avec l'identifiant de session dans l'URL. La victime clique sur l'URL du courriel et se connecte au site web. Si l'identifiant de session n'est pas modifié lors de la connexion, le pirate dispose alors d'un identifiant de session valide et authentifié. Cela permet une prise de contrôle complète du compte.
Une autre attaque contre une mauvaise gestion des sessions est une attaque par force brute. Lorsque les développeurs essaient de créer leurs propres systèmes de gestion de session, ils utilisent souvent des identifiants de session qui sont assez faciles à deviner. Il peut s'agir d'une séquence (1, 2, 3) ou d'un schéma prévisible. L'attaquant continue simplement à deviner les identifiants de session jusqu'à ce qu'il en découvre un valide. Cela conduit également à la prise de contrôle d'un compte.
Les sessions qui ne sont pas invalidées automatiquement après un certain temps peuvent être exploitées pour attaquer les utilisateurs. La réussite d'une attaque de type "cross-site request forgery " dépend des sessions qui sont encore valides après que l'utilisateur a quitté le site. Supposons qu'un pirate place une iframe ou une image sur un site visité par l'utilisateur. L'attribut "src" (source) est défini sur l'URL du site vulnérable et exécute une action au nom de l'utilisateur. Par exemple, une application bancaire vulnérable pourrait être utilisée pour transférer de l'argent sur le compte d'un attaquant sans l'autorisation de l'utilisateur.
La gestion des sessions peut être délicate et les faiblesses peuvent être dévastatrices. Il s'agit toutefois d'un problème bien connu qui peut être résolu.
Déjouer la gestion des sessions non sécurisées
La gestion des sessions est un élément essentiel de toute application web. C'est pourquoi de nombreux cadres de développement web intègrent une fonctionnalité de gestion des sessions. Ces systèmes ont été examinés de près par des experts afin de détecter et d'éliminer les problèmes. Utilisez-les.
Voici quelques-unes des caractéristiques communes d'une bonne gestion de session:
Génération d'identifiants de session aléatoires que les attaquants ne peuvent pas deviner
Les sessions sont invalidées lorsqu'un utilisateur se déconnecte.
Les sessions sont automatiquement invalidées après un certain temps.
Les identifiants de session sont modifiés après la connexion de l'utilisateur.
Les identifiants de session ont une longueur d'au moins 128 bits afin d'éviter les attaques par force brute.
Les frameworks web tels que Spring, ASP.NET Core, Rails et Django possèdent ces propriétés et devraient être utilisés pour leurs normes de sécurité plus élevées dans ce cas.
Conclusion : Ne créez pas votre propre système de gestion des sessions à partir de zéro.
Une fois les identifiants de session créés, ils doivent être protégés. Attribuez la valeur "true" aux indicateurs Secure et HttpOnly pour les cookies de session. Cela garantit que leur valeur ne peut pas être récupérée avec JavaScript et que le navigateur n'enverra le cookie que via HTTPS, empêchant ainsi les attaquants de voler la session de quelqu'un en cours de route.
Sécurisez vos sessions
Consultez nos ressources d'apprentissage gratuites pour en savoir plus sur la gestion sécurisée des sessions. Apprendre à sécuriser vos sessions vous aidera à prévenir la prise de contrôle des comptes utilisateurs, les atteintes à la réputation et les pertes de revenus dues aux failles de sécurité. Sécurisez vos sessions et protégez vos utilisateurs.

Cliquez sur le lien ci-dessous et téléchargez le PDF de cette ressource.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Voir le rapportRéservez une démonstrationJaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.
Vous vous rendez sur un site web et vous vous connectez. Comme d'habitude, vous remplissez votre panier avec les produits que vous souhaitez acheter. Puis, oups, votre main glisse et ferme l'onglet du navigateur. Après une petite panique, vous entrez à nouveau l'URL du site dans le navigateur et appuyez sur la touche "Entrée". Vous revenez sur le site, vous êtes connecté et tous vos articles sont encore dans le panier. C'est bien.
Comment le site a-t-il su qui vous étiez sans vous ré-authentifier ? Il vous a identifié parce qu'il utilisait des sessions. Les sessions sont la clé d'une bonne expérience utilisateur sur le web. Cependant, une mauvaise gestion des sessions peut entraîner des failles de sécurité que les pirates peuvent exploiter.
Voyons maintenant ce que signifie la gestion des sessions, comment une gestion insuffisante des sessions peut vous nuire et ce que vous pouvez faire pour gérer correctement les sessions.
Comprendre les faiblesses de la gestion des sessions
Une session fait référence à une valeur stockée sur le serveur, spécifique à un seul utilisateur de l'application. Cela est nécessaire pour deux raisons : Premièrement, HTTP est un protocole sans état. Chaque demande est distincte et ne connaît pas les demandes qui l'ont précédée ou suivie. Une session permet au serveur de savoir qui a envoyé la requête. Sinon, vous devriez vous connecter chaque fois que vous cliquez sur un bouton ou un lien.
La deuxième raison d'être des sessions est l'autorisation de l'utilisateur. L'identifiant de session peut être utilisé pour reconnaître un utilisateur spécifique disposant de droits spécifiques au sein du système. L'application saura qui est cette personne et ce qu'elle est autorisée à faire.
Une session se compose de deux éléments. Un magasin de données côté serveur stocke un identifiant de session et l'associe à des informations sur l'utilisateur, telles que son nom d'utilisateur ou les informations relatives à son panier. Le même identifiant de session est envoyé au navigateur dans un cookie. Les cookies sont stockés par le navigateur sur le système de l'utilisateur. Le client transmet le cookie à chaque demande, ce qui permet au serveur de savoir que cette demande provient du même utilisateur. La plupart des applications utilisent les sessions pour suivre les utilisateurs avant et après l'authentification.
Une bonne gestion des sessions est essentielle à la sécurité d'une application. Un identifiant de session valide a le même niveau de confiance qu'un nom d'utilisateur/mot de passe, ou même qu'un jeton d'authentification à deuxième facteur.
Pourquoi une mauvaise gestion des sessions est dangereuse
Une mauvaise gestion des sessions peut conduire à une prise de contrôle totale du compte. Cela signifie que les données des clients peuvent être volées ou que des produits peuvent être achetés frauduleusement. Les attaquants disposent de plusieurs moyens pour obtenir un identifiant de session valide.
Une attaque par fixation de session se produit lorsque les sessions ne sont pas modifiées à des moments clés, comme lorsqu'un utilisateur se connecte au système, et si les identifiants de session peuvent être définis à l'aide de l'URL. La définition d'identifiants de session de cette manière peut être utilisée pour maintenir la connexion des utilisateurs dans différentes applications qui utilisent la même source d'authentification. Dans ce cas, un pirate peut naviguer sur un site web et obtenir un identifiant de session. Il envoie ensuite un URL à une victime peu méfiante par courrier électronique, avec l'identifiant de session dans l'URL. La victime clique sur l'URL du courriel et se connecte au site web. Si l'identifiant de session n'est pas modifié lors de la connexion, le pirate dispose alors d'un identifiant de session valide et authentifié. Cela permet une prise de contrôle complète du compte.
Une autre attaque contre une mauvaise gestion des sessions est une attaque par force brute. Lorsque les développeurs essaient de créer leurs propres systèmes de gestion de session, ils utilisent souvent des identifiants de session qui sont assez faciles à deviner. Il peut s'agir d'une séquence (1, 2, 3) ou d'un schéma prévisible. L'attaquant continue simplement à deviner les identifiants de session jusqu'à ce qu'il en découvre un valide. Cela conduit également à la prise de contrôle d'un compte.
Les sessions qui ne sont pas invalidées automatiquement après un certain temps peuvent être exploitées pour attaquer les utilisateurs. La réussite d'une attaque de type "cross-site request forgery " dépend des sessions qui sont encore valides après que l'utilisateur a quitté le site. Supposons qu'un pirate place une iframe ou une image sur un site visité par l'utilisateur. L'attribut "src" (source) est défini sur l'URL du site vulnérable et exécute une action au nom de l'utilisateur. Par exemple, une application bancaire vulnérable pourrait être utilisée pour transférer de l'argent sur le compte d'un attaquant sans l'autorisation de l'utilisateur.
La gestion des sessions peut être délicate et les faiblesses peuvent être dévastatrices. Il s'agit toutefois d'un problème bien connu qui peut être résolu.
Déjouer la gestion des sessions non sécurisées
La gestion des sessions est un élément essentiel de toute application web. C'est pourquoi de nombreux cadres de développement web intègrent une fonctionnalité de gestion des sessions. Ces systèmes ont été examinés de près par des experts afin de détecter et d'éliminer les problèmes. Utilisez-les.
Voici quelques-unes des caractéristiques communes d'une bonne gestion de session:
Génération d'identifiants de session aléatoires que les attaquants ne peuvent pas deviner
Les sessions sont invalidées lorsqu'un utilisateur se déconnecte.
Les sessions sont automatiquement invalidées après un certain temps.
Les identifiants de session sont modifiés après la connexion de l'utilisateur.
Les identifiants de session ont une longueur d'au moins 128 bits afin d'éviter les attaques par force brute.
Les frameworks web tels que Spring, ASP.NET Core, Rails et Django possèdent ces propriétés et devraient être utilisés pour leurs normes de sécurité plus élevées dans ce cas.
Conclusion : Ne créez pas votre propre système de gestion des sessions à partir de zéro.
Une fois les identifiants de session créés, ils doivent être protégés. Attribuez la valeur "true" aux indicateurs Secure et HttpOnly pour les cookies de session. Cela garantit que leur valeur ne peut pas être récupérée avec JavaScript et que le navigateur n'enverra le cookie que via HTTPS, empêchant ainsi les attaquants de voler la session de quelqu'un en cours de route.
Sécurisez vos sessions
Consultez nos ressources d'apprentissage gratuites pour en savoir plus sur la gestion sécurisée des sessions. Apprendre à sécuriser vos sessions vous aidera à prévenir la prise de contrôle des comptes utilisateurs, les atteintes à la réputation et les pertes de revenus dues aux failles de sécurité. Sécurisez vos sessions et protégez vos utilisateurs.
Table des matières
Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstrationTéléchargerRessources pour vous aider à démarrer
Services professionnels - Accélérer grâce à l'expertise
L'équipe des services de stratégie de programme (PSS) de Secure Code Warriorvous aide à construire, améliorer et optimiser votre programme de codage sécurisé. Que vous partiez de zéro ou que vous affiniez votre approche, nos experts vous fournissent des conseils sur mesure.
Thèmes et contenu de la formation sur le code sécurisé
Notre contenu, à la pointe de l'industrie, évolue constamment pour s'adapter au paysage du développement logiciel en constante évolution, tout en gardant votre rôle à l'esprit. Les sujets abordés vont de l'IA à l'injection XQuery, et sont proposés pour une variété de rôles, des architectes et ingénieurs aux gestionnaires de produits et à l'assurance qualité. Découvrez en avant-première ce que notre catalogue de contenu a à offrir par sujet et par rôle.
Quêtes : Apprentissage de pointe pour permettre aux développeurs de garder une longueur d'avance et d'atténuer les risques.
Quests est une learning platform qui aide les développeurs à atténuer les risques liés à la sécurité des logiciels en améliorant leurs compétences en matière de codage sécurisé. Grâce à des parcours d'apprentissage, des défis pratiques et des activités interactives, elle permet aux développeurs d'identifier et de prévenir les vulnérabilités.
Ressources pour vous aider à démarrer
La décennie des défenseurs : Secure Code Warrior Dixième anniversaire
Secure Code WarriorL'équipe fondatrice de SCW est restée soudée, dirigeant le navire à travers chaque leçon, chaque triomphe et chaque revers pendant une décennie entière. Nous nous développons et sommes prêts à affronter notre prochain chapitre, SCW 2.0, en tant que leaders de la gestion des risques pour les développeurs.
10 prédictions clés : Secure Code Warrior sur l'influence de l'IA et de la conception sécurisée en 2025
Les organisations sont confrontées à des décisions difficiles sur l'utilisation de l'IA pour soutenir la productivité à long terme, la durabilité et le retour sur investissement de la sécurité. Au cours des dernières années, il nous est apparu clairement que l'IA ne remplacera jamais complètement le rôle du développeur. Des partenariats IA + développeurs aux pressions croissantes (et à la confusion) autour des attentes en matière de conception sécurisée, examinons de plus près ce à quoi nous pouvons nous attendre au cours de l'année prochaine.