2017-09-10 10 views
0

En tant que magasin de session, j'ai remarqué que redis-rails enregistre l'identifiant de session dans un format non crypté dans le cookie. L'ID de session ne doit-il pas être traité comme une information sécurisée et ne pas être exposé dans un cookie non crypté pour contrecarrer les tentatives de piratage de session?Est-il sécuritaire d'utiliser redis-rails comme magasin de session?

+0

Non, ils ne devraient pas, tant qu'ils sont protégés en transit, que https a tendance à couvrir. – pvg

+0

Le site utilise https, mais quelqu'un peut continuer à essayer des chaînes aléatoires comme identifiant de session pour saisir la session de quelqu'un d'autre. Ils ne peuvent pas? P.S Puis-je savoir pourquoi la question est downvoted? – RajeshT

+0

Non, ils ne peuvent pas, sauf si les sessions sont prévisibles ou ont plus de temps que l'âge de l'univers. Les identifiants de session doivent simplement être aléatoires, imprévisibles et suffisamment grands. – pvg

Répondre

1

No.

Le cookie d'identification de session est le seul (décent) moyen de lier un client à une session. Le client doit avoir une sorte de réclamation qu'il peut transmettre avec la demande afin que nous puissions l'identifier.

Ceci s'applique si vous utilisez CookieStore, Redis, ActiveRecord ou memcached. Chiffrer l'identifiant de session avec un sel fixe ou sans sel ne ferait absolument rien d'autre que de perdre du temps puisque l'attaquant a toujours accès au cookie dans une attaque man-in-the-middle ou XSS.

Si vous utilisiez du sel, vous devrez également le lier à l'utilisateur. Maintenant, vous avez deux problèmes au lieu d'un. Alors que vous pourriez utiliser un tas de nouvelles approches comme le salage avec l'agent utilisateur, ip ou toute autre chose que vous pensez que vous connaissez sur le client les avantages de sécurité sont peu nombreux.

Comme @pvg dit:

id de session de doivent simplement être aléatoire, imprévisible et suffisamment grande .

des moyens efficaces de protéger la session sont:

  • Utilisez https pour déjouer les attaques man-in-the-middle.
  • Appelez reset_session lors de la connexion des utilisateurs pour éviter la fixation de la session.
  • Désinfecter l'entrée utilisateur pour éviter XSS.