[RESOLU] authentication token

Eléphant du PHP | 115 Messages

30 oct. 2017, 13:34

Bonjour tous le mondes,

j'avais déjà poster quelque chose sur ce sujet mais après quelque teste cela n'avais pas fonctionner.

Aujourd'hui, j'ai décidé de reprendre cette partie de zéro et d'allez jusqu'au bout.
Je vous explique ce que je cherche c'est réaliser une authentication avec token sécuriser.

Quant un utilisateur veux se connecter il tape son login et mot de passe puis une recherche ce fait sur le BDD et crée un token, avec un time.
A chaque requête cela envoye un token et time pour valider ou non l'utilisation de la requête.

Pour la parti sécurité je cherche que cela ne peut être récupérer ou réutilisable par qui conque, en plus je voudrais utiliser ma propre solution, ne pas passer par google, Facebook ou autre ...

Merci pour vos aides et vos réponses,

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2017, 14:17

Bonjour,

Tu peux utiliser l'ID de session PHP qui est déjà un token, et il sera parfaitement sécurisé si ton site est en HTTPS.

En résumé tu as juste à faire une authentification par login/mdp classique avec utilisation des sessions et ça fera ce que tu veux.

Il existe des dizaines de tutos sur le web : https://www.google.fr/search?q=php+auth ... on+session
Par exemple celui ci est assez didactique : https://openclassrooms.com/courses/conc ... ce-membres
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 115 Messages

30 oct. 2017, 16:16

merci @rthur pour ta réponse,

OK, j'utilise déjà cela sur mes applications en php.

Mais j'ai lu plusieurs postes et articles sur les méthodes de hacking de site web.
Le HTTPS peux être décrypter et les sessions avec cookie peux etre réutiliser ou même la double authentification peut hacker.

C'est pour cela que je cherche a éviter cela
Présentation du XSS
La faille echo()
La faille include()
Les fichiers d'upload
Divers (IMG - JS - CSS)
etc...

C'est pour cela que je vient vers vous pour trouver le bon couteau suisse.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2017, 16:22

Non, le HTTPS ne peut pas être décrypté.

Si ton serveur est correctement configuré, et si l'utilisateur a une connexion internet fiable et une machine sans virus alors c'est tout à fait sécurisé.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 115 Messages

30 oct. 2017, 17:18

Merci de ton aide,

Je vais suivre ton 2 exemple.

Eléphant du PHP | 115 Messages

30 oct. 2017, 18:52

Comme tu me la dit j'ai utiliser l'exemple 2.

Mais je rencontre une difficulté, j'ai bien suivie l'exemple.

création d'une table MySql user_comptes :
id_compte
user_email
password
datecrea

et créer une page de index.php et un authentification.php

Dans index.php j'ai un
input email
input password

je valide et fait appel sur
<form action="production/authentification.php" method="GET" class="form-horizontal">
mais cela me donne toujours "Mauvais identifiant ou mot de passe !"

le code est :

Code : Tout sélectionner

<?php include_once '../config/config.php'; ?> <?php echo $user_email = $_GET['user_mail']; // Hachage du mot de passe echo $pass_hache = sha1($_POST['password']); // Vérification des identifiants $req = $bdd->prepare('SELECT id_user_compte FROM user_comptes WHERE user_mail = :user_mail AND password = :password'); $req->execute(array( 'user_mail' => $user_mail, 'password' => $pass_hache)); $resultat = $req->fetch(); echo $resultat; if (!$resultat) { echo 'Mauvais identifiant ou mot de passe !'; } else { session_start(); $_SESSION['id'] = $resultat['id']; $_SESSION['pseudo'] = $pseudo; echo 'Vous êtes connecté !'; }
je ne trouve pas peux tu m'aider merci beaucoup de ton aide,

Eléphant du PHP | 115 Messages

30 oct. 2017, 21:54

J'ai résolu mon problème de connexion comme ceci

Code : Tout sélectionner

<?php include_once '../config/config.php'; ?> <?php echo $user_email = $_GET['useremail']; // Hachage du mot de passe echo $pass_hache = sha1($_GET['password']); // Vérification des identifiants $req = $bdd->prepare("SELECT id_user_compte FROM user_comptes WHERE user_email = '$user_email' AND password = '$pass_hache'"); $req->execute(); $resultat = $req->fetch(); if (!$resultat) { echo 'Mauvais identifiant ou mot de passe !'; } else { session_start(); $_SESSION['id'] = $resultat['id']; $_SESSION['pseudo'] = $pseudo; echo 'Vous êtes connecté !'; }

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2017, 23:41

Il est préférable de tout passer en POST, ça évite d'avoir les identifiants dans l'url et dans les logs du serveur ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 115 Messages

31 oct. 2017, 10:03

Merci a toi,

J'ai modifier cela,

Merci a toi de ton aide,