La réponse correcte à cette question est NON. L'utilisation de toute combinaison de variables autres qu'un cookie n'est pas sécurisée.
Pensez-y : lorsqu'un utilisateur demande une page pour la première fois, le serveur envoie la page accompagnée d'une valeur unique indiquant "HTTP is stateless, keep this so I know it's 'you' next time you call". Cela signifie que cette personne, dans ce navigateur (quel que soit l'onglet), à ce moment-là, a un jeton unique.
Si et seulement s'il s'est connecté avec succès, ce jeton peut maintenant être lié à une session du côté du serveur. Les jetons sont censés être si longs et aléatoires que personne ne peut en deviner un à temps.
Plusieurs navigateurs peuvent utiliser la même adresse IP. Plusieurs personnes peuvent avoir EXACTEMENT le même agent utilisateur. Un cookie est le seul système de stockage qui fonctionne.
Il y a en fait un autre moyen, et c'est d'ajouter le jeton unique à chaque lien unique vers le serveur ainsi que tous les appels AJAX, comme ?PHPSESSID=my-unique-token-189481958
- mais c'est une douleur à coder.