IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Creer une session en CGI


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 114
    Points
    114
    Par défaut Creer une session en CGI
    Bonjour,

    J'ai développé une application en CGI, et je cherche à rendre la connexion plus "sécurisée".

    Actuellement, je me log, et si le nom/mdp rentré correspond à celui enregistré, je crée un cookie "connected" qui vaut "ok" que je relis ensuite pour savoir si l'utilisateur est bien connecté.

    En gros, il suffit de créer ce cookie et de l'initialiser à la bonne valeur pour se logger sans connaitre les login


    Au début j'avais penser changer la valeur de mon cookie par une valeur plus ou moins aléatoire, comme par exemple le MD5 de la date du jour, mais dans ce cas la la connexion serait coupée à 0h00.

    Des idées?

    merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Points : 538
    Points
    538
    Par défaut
    A priori tu pourrait initialiser ta variable un peu comme tu veux pas obliger de faire du rand. Après si c'est vraiment important pour toi la fonction random est ton ami.
    "Le + 1 sert à être sur que le nombre ne sera pas < 1 vu que 0 a l'air de t'embêter"
    "L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein
    ----------------------
    T.O.A.O 6-MarViN

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par 6-MarViN Voir le message
    A priori tu pourrait initialiser ta variable un peu comme tu veux pas obliger de faire du rand. Après si c'est vraiment important pour toi la fonction random est ton ami.
    "Le + 1 sert à être sur que le nombre ne sera pas < 1 vu que 0 a l'air de t'embêter"
    De cette manière la valeur sera aléatoire, mais comment la comparer après sans être obligé de créer un fichier contenant toutes les connections?

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 374
    Points : 23 631
    Points
    23 631
    Par défaut
    Citation Envoyé par link66 Voir le message
    De cette manière la valeur sera aléatoire, mais comment la comparer après sans être obligé de créer un fichier contenant toutes les connections?
    Le plus simple consiste à créer un cookie qui contienne soit l'ID de ton utilisateur, soit carrément un identifiant de session qui soit effectivement stocké sur ton serveur et qui expire à une date fixe, et d'y ajouter un MD5 ou un SHA de ces données, auxquelles on mélange une donnée fixe secrète (salt) qui reste sur le serveur et qui n'est jamais révélée.

    En recevant le cookie, tu recalcules le hash de ces données comme tu l'as fait au départ, tu inclus la même valeur secrète et tu regardes si le résultat est le même que ce contient le cookie.

    Pour encore plus de sécurité, tu peux faire varier cette valeur secrète selon une politique qui t'est propre, mais tu dois être capable de choisir la bonne en fonction des données du cookie.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 114
    Points
    114
    Par défaut
    Finalement, je crée un cookie contenant une valeur aléatoire codée sur 32 bits, soit suffisamment de possibilités pour que j'ai pas à chercher à empêcher des doublons, le nombre de connections simultanées au serveur sera très faible (<10)

    Cet ID est stocké dans un fichier, avec le nom de l'utilisateur, ses droits, paramètres persos et timestamp de la dernière connexion

    A chaque ouverture de page, je regarde si la valeur donnée dans le cookie existe, et je rafraichi la valeur du timestamp, tout en supprimant celles expirées depuis plus d'une heure

    Comparé à la méthode précédente (cookie qui vaut "ok" -> connexion acceptée), il faut passer par de la brute force, en espérant qu'une connexion soit déjà active

    Si j'ai le temps je m'amuserai à convertir la valeur de la session en MD5 ou autre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Creer une variable de session avec une fonction javascript
    Par voyageurdumonde dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/04/2012, 16h54
  2. Creer une session avec ajax
    Par mimagyc dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/10/2008, 12h38
  3. Réponses: 9
    Dernier message: 14/02/2007, 16h12
  4. Creer une session
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/12/2005, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo