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

Langage PHP Discussion :

[Sécurité] Chiffrement des infos dans l'URL


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut [Sécurité] Chiffrement des infos dans l'URL
    Bonjour et bonne année !

    Voila j'ai des variables que je passe pas l'URL du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    index.php?mail=dsphinx@gmail.com
    J'aimerais savoir s'il est possible de crypter la variable mail à la page ou l'on charge la variable dans l'url et la décrypter dans la page ou l'on récupère la variable ?

    merci !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Pour commencer, si possible, utilise le POST...

    Ensuite, pour le cryptage, évidemment que c'est possible ! Mais il va faloir que tu écrives toi même tes fonctions de cryptage/décryptage, ce qui n'est pas compliqué du tout.

    pour ca, c'est facile, tu définie une clé, et tu aditionne les valeurs asci lettre a lettre a ton de ton mot clé et de ta chaine. si ta chaine est plus longue que ta clé (of course), tu répètes ta clé.

    Pour décrypter, c'est le même alogo avec un - à la place du +.
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  3. #3
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Tout dépend ce que tu appelles crypter.
    Si c'est juste pour la rendre illisible par un robot ou à l'oeil nu par un humain, tu peux
    - écrire une fonction toute bête qui décale les caractères (A -> B, B-> C...)
    - encoder ta variable en base64
    Sinon tu peux utiliser la bibliothèque mcrypt http://fr3.php.net/manual/fr/ref.mcrypt.php si elle est installée sur ton serveur ou écrire une fonction de cryptage plus élaborée (cryptage XOR par exemple).

    La méthodologie globale reste toujours la même
    1-crypter la variable
    2-l'envoyer cryptée dans l'URL
    3-la récupérer cryptée
    4-la décrypter

    Sinon tu peux aussi passer tes variables par session, ça évite que quelqu'un puisse les voir facilement.

    Reste à savoir qu'aucune méthode n'est infaillible.

  4. #4
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    Salut

    Sinon, tu peux aussi utiliser les SESSIONS, tu stockes dans ta session le mail

    page qui envoie.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
    session_start();
    $_SESSION['mail'] = dsphinx@gmail.com;
    ?>
    page qui recoit.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    session_start();
     
    if (isset($_SESSION['mail']))
    {
      // ta fonction mail
      mailTo($_SESSION['mail'], $monMessage);
    }
    Pour en savoir plus sur les sessions...

    ++
    JC
    VELOMASTER, idée cadeau ? un jeu de plateau

    Hummmmm, des donuts !!!!

    Merci de penser à , et et aussi

  5. #5
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    J'oubliais : s'il faut juste comparer la variable à une valeur préexistante (comme un mot de passe), il suffit de chiffrer la variable avec md5() et de comparer la valeur chiffrée avec celle de la valeur attendue.

  6. #6
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    Merci pour vos réponses ! Je ne peux pas utiliser les sessions car la variable est généré pour chaque page dans un emailling ! Mais j'y ai pensé aux sessions ça resoudrait mon problème... Malheureusement, la méthode POST est aussi impraticable... En fait, j'aimerais juste appliquer l'algorithme A-> B B->C (algo de jules césar) mais comment le faire ? Je ne vais pas faire 26 if (...) pour crypter et 26 if pour décrypter ? et comment gérér dans mon cas le @ ?

    merci !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    En ASCII... en C/c++, ça se fait implicitement, en PHP, j'imagine qu'il doit exister des fonctions pour obtenir les code ascii de caracteres et inversement
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  8. #8
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    Oui tu as raison ! Il existe des fonctions ! ord() et chr() le permettent ! Je vais tester ! Bon c'est un niveau très faible de cryptage car n'importe quel utilisateur averti et ayant des connaissances en php arrive a decrypter l'email mais ca va me dépanner pour le moment...

    Merci !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Si tu utilises la méthode que j'ai décrite un peu plus haut, ne te méprend pas, si ta clé est suffisament longue (genre 16 caracteres) et varié (utilisation d'un max de symboles), personnes ne le décryptera jamais sans connaitre la clé !
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  10. #10
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    en fait tout dépend de la clé pour chiffrer... Merci !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  11. #11
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    ord et chr permet d'effectuer la fonction sur un seul caractère... Comment faire pour parser toute la chaine de caractère ? Ou existe-il une fonction équivalente à ord pour les chaines ? Merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $mail = "dsphinx@gmail.com";
     
    $mail = ord($mail);
     
    echo $mail;
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Mort de rire :

    existe-il une fonction équivalente à ord pour les chaines
    non, ça existe pas !

    bha je sais pas si foreach peut marcher sur une string, mais dans le cas contraire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $len = strlen($machaine);
    for($i=0;$i<$len;$i++)
    {
        $caractere = substr($machaine, $i, $i+1);
    }
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  13. #13
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    pardon je savais pas... Merci quand meme !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  14. #14
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    oh non, c'est pas de pas savoir qui me fait rire, juste de vouloir recupérer le caractere ascii d'une chaine de caractere ^^

    la difference entre un caractere et un caractere ascii, c'est que le premier est un symbole, le second est le numero de ce symbole compris entre 0 et 255 (pour le PC). Il est donc difficile de concevoir qu'il y ai des code ascii pour les chaines de caracteres
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  15. #15
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    oki pardon ! C'est vrai qu'avec du recul ca parait un peu con !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

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

Discussions similaires

  1. [TP7] Renvoyer des infos dans la console pour redirection
    Par Natopsi dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 05/11/2005, 18h21
  2. [MySQL] Chercher des info dans une DB, et les afficher en lien
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/10/2005, 19h29
  3. [langage] [PERL] prendre des infos dans un fichier log
    Par osiris73 dans le forum Langage
    Réponses: 2
    Dernier message: 24/05/2005, 16h42
  4. [Sécurité]Gestion des accès dans plusieurs bases
    Par vincentj dans le forum Débuter
    Réponses: 1
    Dernier message: 05/01/2005, 14h19
  5. Réponses: 2
    Dernier message: 19/01/2004, 12h19

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