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

PHP & Base de données Discussion :

Cryptage des données envoyées par URL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de nounouuuuu201186
    Femme Profil pro
    Stagiaire
    Inscrit en
    Juillet 2011
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 169
    Par défaut Cryptage des données envoyées par URL
    Bonjour,
    je veux envoyer un paramètre par URL en le cryptant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="supprimer.php?delete=<?php echo sha1($donnees['id']);?>" onclick="return confirm('Êtes-vous sûre de vouloir supprimer ce client ?');">Supprimer</a>
    Dans la page destination:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        $id = $_GET['delete']; ;
        include("connexion.php");
        $delete_q="DELETE FROM commande WHERE client=$id";
    je veux savoir comment faire la requête?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    tu est sur de toi?

    moi si tu me propose ce service sans avoir une connexion https, pi même cela, je vois sur GIT ou gestion de mon serveur Cloud cela me fais peur lol...

    mais bon, pourquoi pas puisque cela fonctionne, c'est un bon topic.

    oué, comment encoder le GET pour rendre quelque chose qui n'a pas vocation d'être crypté ( car pas assez de caractères ) , cryptable

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    Bonjour,

    pour ton besoin, il faut plutot regarder du coté des tokens crsf

    ---------------------------
    sinon il faut passer l'id en clair et crypté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ?delete=44&idx=38375088dbb818de695cc452ae3c4a5468fa849b
    a la reception
    tu compares
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (sha1($_GET[delete].MA_CLE_SECRETE)!==$_GET[idx])) die('GRR tu as modifier a la main le parametre id');
    --------------------------------
    edit pour EIN-LESER

    il est possible d'utiliser la meme technique avec un input caché dans un formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (sha1($_POST[id].MA_CLE_SECRETE)!==$_POST[idcode])) die('modifier le parametre id pourtant caché');
    car cacher avec un POST n'est nullement une sécurité

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Pourquoi pas envoyer tes paramètres par un formulaire caché?

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    à la fois ce qu'il faut bien comprendre, c'est que le seul enjeu, c'est le support transportant le message.

    Si le transport permet d'avoir une série de 1 et de 0, que le cryptage permet d'être sur de ne pas se faire voler et que au départ comme à destination nous ayons le même résultat.

  6. #6
    Membre confirmé Avatar de nounouuuuu201186
    Femme Profil pro
    Stagiaire
    Inscrit en
    Juillet 2011
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 169
    Par défaut
    pour ton besoin, il faut plutot regarder du coté des tokens crsf
    je suis en train d'essayer de créer un espace d'administration qui permet:
    1)l'ajout d'un client
    2)la suppression d'un client
    3)la modification d'un client

    Il s'avère qu'il faut voir côté tokens CSRF (Cross-Site
    Request Forgeries) en PHP

  7. #7
    Membre confirmé Avatar de nounouuuuu201186
    Femme Profil pro
    Stagiaire
    Inscrit en
    Juillet 2011
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 169
    Par défaut
    Comme je vous avez évoqué, je suis en train d'essayer de créer un espace membre (ajout, modification, suppression)
    L'accès à cet espace se fait à partir de la page login.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    <?php  
     
    //Connexion à la base de données
         include("connexion.php");
     
    //On va vérifier si le jeton est présent dans la session et dans le formulaire
    if(isset($_SESSION['token']) && isset($_SESSION['token_time']) && isset($_POST['token']))
    {
       //Si le jeton de la session correspond à celui du formulaire
    if($_SESSION['token'] == $_POST['token'])
    {
    //On stocke le timestamp qu'il était il y a 15 minutes
    $timestamp_ancien = time() - (15*60);
    //Si le jeton n'est pas expiré
    if($_SESSION['token_time'] >= $timestamp_ancien)
    {
    if(isset($_POST['login'], $_POST['mdp'])) # Si le formulaire est soumis
    {
     if (!empty($_POST['login']) && !empty($_POST['mdp']))
     {
     
     $login = $_POST['login']; # Protection des Injection SQL
     $mdp = $_POST['mdp'];
     
     $login_q = $bdd->prepare("SELECT login, pass FROM users WHERE login=:login && pass=:mdp");
     $login_q->execute(array('login'=>$login, 'mdp'=>$mdp));
     
    $result = $login_q->fetchColumn();
     
     if($result != "") # Si login et pass ok
     {
     $user = $result; 
     //echo $user;
     
     header('Location: ajout.php'); # Redirection
     
     exit(); 
     }
     else 
     {
     echo "Login ou Mot de passe incorrect";
     }
     }
    }
    }//token
    }
    }
    /************************* si le formulaire n'est pas encore envoyé *********************/
    //On génére un jeton totalement unique 
    $token = uniqid(rand(), true);
    //Et on le stocke
    $_SESSION['token'] = $token;
    //On enregistre aussi le timestamp correspondant au moment de la création du token
    $_SESSION['token_time'] = time();
     
    ?>
    <!DOCTYPE html>
    <html lang="fr">
     <head>
     <meta charset="utf-8" />
     <title>Authentification</title>
     <link rel="stylesheet" href="style.css" type="text/css" />
     
     </head>
     
     <body>
     <nav>
     </nav>
     <div></div>
     
     <div>
     
     <header>
     
     </header>
     
     <section id="connexion">
     <form method="post" action="login.php">
     <label for="id">Identifiant</label>
     <input id="login" name="login" type="text" required /> <!-- Remplir ce champ est requis -->
     <br/>
     <label for="mdp">Mot de passe</label>
     <input id="mdp" name="mdp" type="password" required /> <!-- Remplir ce champ est requis -->
     <a href="#" id="pwd_oubli" >Mot de passe oublié ?</a>
     <input  type="hidden" name="token" id="token" value="<?php echo $token;?>"/>
     <input type="submit" value="Connexion">
     </form>
     </section>
     
     <div></div>
     
     <footer>
     
     </footer>
     
     </div>
     <!--[if lte IE 8]></div> <! [endif]-->
     </body>
    </html>
    Je veux savoir si je suis en train d'aller dans le bon chemin pour l'utilisation des tokens CSRF?
    Est-ce la page de connexion vaut la peine de contenir ces tokens ou ce sont les pages ajout, modification et suppression qui doivent contenir ces tokens?

Discussions similaires

  1. [PHP 5.3] Niveaux de protection des données envoyées par la méthode post
    Par bailamos dans le forum Langage
    Réponses: 1
    Dernier message: 24/03/2010, 20h30
  2. [AJAX] encodé des donnés envoyé par POST
    Par stc074 dans le forum AJAX
    Réponses: 2
    Dernier message: 19/07/2009, 18h00
  3. cryptage de données envoyé par un formulaire
    Par navorinco dans le forum Langage
    Réponses: 3
    Dernier message: 05/06/2009, 17h17
  4. [Sécurité] Cryptage des données envoyées par le réseau
    Par DeusXL dans le forum Développement
    Réponses: 6
    Dernier message: 05/03/2007, 04h29
  5. Récuperation des données envoyées par Form en POST
    Par bobatel dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2006, 14h59

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