La gestion des sessions utilisateur sur plusieurs fermes Web et plateformes demeure l’un des défis suprêmes du développement de sites Web à haute disponibilité. Comme l’explique l’article « Une recette pour remplacer les variables de session » (Club Abonnés, SQL Server Magazine décembre 2006), l’utilisation conjointe des cookies, des procédures stockées SQL Server, d’un générateur de GUID et de paramètres d’URL. Certains développeurs évitent les paramètres d’URL car ils sont transmis de manière visible d’une page à l’autre. Ils leur préfèrent le passage de valeurs au moyen de champs masqués. Dans les deux cas, les résultats ne sont pas sécurisés. Par conséquent, les valeurs passées d’une page à l’autre doivent être les plus obscures possibles.
Le passage de toute information présente un risque potentiel pour la sécurité. J’aime utiliser les GUID car ils ne révèlent pas réellement d’informations utiles pour les pirates potentiels et permettent malgré toute la persistance de la session pendant tout le temps nécessaire. Le présent article va aborder les techniques que j’emploie pour créer un gestionnaire de sessions sans cookies basé sur SQL Server. Il présente également le fonctionnement du gestionnaire de sessions et différentes manières de l’employer.
La chute des cookies ?

Etape 1 : Création du générateur de GUID dans SQL Server
Pour les besoins de cet exemple, j’utilise le générateur de GUID intégré livré avec SQL Server. Il s’agit d’un simple appel de fonction, intitulé newid(). Gardez à l’esprit que l’unicité est garantie uniquement sur la machine hôte. Toutefois, comme j’effectue la configuration afin qu’un serveur de base de données gère les sessions, cette approche convient parfaitement à mon application. Je commence par écrire une procédure stockée simple qui génère un nouveau GUID, comme l’illustre le listing 1. Il est logique de recourir à des GUID.
Il s’agit en effet de valeurs uniques, non séquentielles, lesquelles n’ont aucune signification pour les utilisateurs, mais peuvent être suivies dans la base de données, au même titre que n’importe quel ID utilisateur. Pour des raisons de simplicité, cet exemple utilise les 12 caractères le plus à droite de la sortie à 36 caractères de la fonction newid(). Si votre site est extrêmement actif, vous souhaiterez probablement employer la valeur entière, mais n’oubliez pas qu’il faut plus de temps pour indexer les valeurs longues. Une valeur plus courte améliore les performances de l’indexation, mais peut ne pas fournir un degré d’unicité suffisant pour votre application.
Etape 2 : Test du générateur de GUID
Pour tester la procédure stockée, j’utilise une page ASP (Active Server Page). Le listing 2 présente le code de test écrit en VBScript de cette page. (Le listing Web 1 affiche une version Visual Basic de ce code à l’adresse http://www.itpro.fr, Club Abonnés). Ce code ouvre la connexion à la base de données SQL, puis exécute la procédure stockée chargée de générer la valeur de GUID servant à suivre l’activité de l’utilisateur.
Dans un navigateur Web, la sortie de cette page aura un aspect du type : 7ED986BFB37C Chaque chargement de la page entraîne la génération d’une nouvelle valeur. La fonction newid() est native à SQL Server et le fait de l’appeler à partir d’une procédure stockée précompilée ajoute peu de traitement par rapport à des sessions de variable ASP, lesquelles utilisent beaucoup de mémoire serveur.
Téléchargez cette ressource

Les 10 tendances clés de l’Expérience Client (CX) pour 2025
Dans le contexte actuel, l'expérience client est un levier clé de réussite. Pour rester compétitives, les entreprises doivent adopter des stratégies CX audacieuses, en s'appuyant sur le cloud, le digital et l'IA. Alors quelles stratégies mettre en place pour garder une longueur d’avance ?
Les articles les plus consultés
- Databricks lève 1 milliard de dollars !
- Les projets d’intégration augmentent la charge de travail des services IT
- L’utilisation des données pour survivre !
- Stockage autonome, Evolutivité & Gestion intelligente, Pure Storage offre de nouvelles perspectives aux entreprises
- Dark Web : où sont vos données dérobées ?
Les plus consultés sur iTPro.fr
- L’Intelligence Artificielle, le nouveau copilote du CRM : une révolution incontournable
- Optimiser la gestion de la relation client dans le secteur des sciences de la vie
- 2025, un « âge de raison » pour l’écosystème de la technologie ?
- 59 % des entreprises françaises victimes de ransomwares ont stoppé leurs opérations !
- KeeeX accélère son développement en Europe en 2025 !
