CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

SECURISER un cookie md5?

KimJongUnDeter
KimJongUnDeter
Niveau 4
23 juin 2017 à 17:49:05

salut,
J'ai un projet à rendre demain et je dois créer un système de connexion avec cookies (username et password), et securiser le cookie password.
Tout fonctionne mais je n'arrive pas à sécuriser mon cookie password .

Mon code :

<?php

//username et mdp d'administrateur
$login="";
$motpass="";
//Récupération des valeurs
$username=$_POST['username'];
$psw=$_POST['psw'];
//Vérification
if($username==$login AND $psw==$motpass)
{
$expir=time() + 200;

//Ecriture des cookies
setcookie("username",$username,$expir);
setcookie("password",$psw,$expir);
//Redirection vers la page à accès réservé
$contenu = include("action2.php");

}
else

//Redirection vers la page de saisie du code
echo "<script type=\"text/javascript\"> window.location='authentificationerreur.php' ;</script>";

?>

MERCI :coeur:

deepblue
deepblue
Niveau 16
23 juin 2017 à 22:25:39

Oula!

Pour répondre à la question "comment sécuriser un cookie ?", on commence déjà par ne pas mettre n'importe quoi dedans. En l’occurrence, il ne faut jamais y placer un couple login/mdp !
Je t'invite à utiliser les sessions qui permettent, façon un poil sécurisée, de stocker ce genre de données : http://php.net/manual/fr/function.session-start.php#refsect1-function.session-start-examples

Message édité le 23 juin 2017 à 22:26:38 par deepblue
WebScraper
WebScraper
Niveau 10
23 juin 2017 à 23:32:49

C'est pour éviter ce genre de code qu'on a inventé les frameworks [[sticker:p/1lm9]]

Le_Tryall
Le_Tryall
Niveau 8
23 juin 2017 à 23:58:24

Si t'es profs t'ont enseignés à stocker un MDP dans un cookie, change d'école [[sticker:p/1kki]]

KimJongUnDeter
KimJongUnDeter
Niveau 4
24 juin 2017 à 01:43:13

Le 23 juin 2017 à 23:58:24 Le_Tryall a écrit :
Si t'es profs t'ont enseignés à stocker un MDP dans un cookie, change d'école [[sticker:p/1kki]]

je suis en dut réseaux telecoms les profs sont pas oufs, sinon merci pour vos réponses

Pseudo supprimé
Pseudo supprimé 24 juin 2017 à 01:57:11

<?php

//initialisation des donnée
$ip = $_SERVER['REMOTE_ADDR'];
$userStatus = false;

// Récupération des donné sauvegardé en base de donnée
$key = md5(rand());
$pass = md5($key . 'password');
$lastIp = md5($key . $ip;
$user = 'user';

// Le formulaire est validé par l'utilisateur
if(isset($_POST['send']) && $_POST['send'] && $_POST['password'] != " && $_POST['user'] != '') {
// NE JAMAIS SAUVEGARDER UN PASSWORD EN CLAIR !!!
$formPass = md5($key . $_POST['password']);
$formUser = $_POST['user'];

// Valid password
if($formPass == $pass) {
$vPass = true;
} else {
$vPass = false;
}

// Valid user
if($formUser == $user) {
$vUser = true;
} else {
$vUser = false;
}

// Si tout est OK
if($vPass && $vUser) {
if(isset($_POST['rememberMe']) && $_POST['remeberMe']) {
$cookieTime = time() + 3600 * 24 * 7; // Une semaine
$cookieValue = md5($key . $formPass);
$cookieDomain = 'domaine du site';
$cookieSecure = true;

setcookie('keyAuth', $cookieValue, $cookieTime, $cookieDomain, $cookueSecure);
}
}
}

// Si déja connecté
// Ont vérifie si l'IP n'a pas changé au cas où !
if(isset($_COOKIE['keyAuth']) && $_COOKIE['keyAuth'] == md5($key . $formPass) && md5($key . $ip) == $lastIp) {
// Tout est OK
$userStatus == true;
} else {
// Destruction du cookie
setcookie('keyAuth', time() - 1);
}

if($userStatus) {
// Utilisateur connecté
// Redirection, validation, role, modification des menus, etc...
} else {
// Utilisateur non connecté
// Affichage du formulaire de connexion.
}

Message édité le 24 juin 2017 à 02:00:27 par Pseudo supprimé
WebScraper
WebScraper
Niveau 10
24 juin 2017 à 02:54:51

à voir si tu ne peux pas remplacer ça :
if($formPass == $pass) {
$vPass = true;
} else {
$vPass = false;
}

par ça directement $vPass = $formPass == $pass;
J'ai pas fait de php depuis longtemps mais je pense que ça doit fonctionner. Sinon utiliser un ternaire.

Sinon le code n'est pas du tout structuré en couches et est peu maintenable.
Même si on utilise pas de framework ni l'OO, il est tout de même recommandé de diviser le code en fonctions !

WebScraper
WebScraper
Niveau 10
24 juin 2017 à 03:19:12

var bool $vPass
var string $formPass
var string $pass

l'expression $formPass == $pass est un booléen, que tu peux stocker directement dans $vPass.
En fait tu peux écrire
$vPass = $formPass == $pass ? true : false;

Ce qui revient à $vPass = $formPass == $pass.

Video_Pijama
Video_Pijama
Niveau 9
24 juin 2017 à 11:38:52

Le 24 juin 2017 à 02:54:51 WebScraper a écrit :
Sinon le code n'est pas du tout structuré en couches et est peu maintenable.
Même si on utilise pas de framework ni l'OO, il est tout de même recommandé de diviser le code en fonctions !

+1

Trop de "if", des variables dont le nom n'a aucun sens, des répétitions, ça sent mauvais (code smell)

Quand on met trop de commentaires pour expliquer un bout de code, c'est le moment d'extraire cette logique dans une methode ou une fonction, dont le nom, ainsi que les arguments, feront déja office de documentation.

Message édité le 24 juin 2017 à 11:43:34 par Video_Pijama
Pseudo supprimé
Pseudo supprimé 24 juin 2017 à 14:03:52

Ok, j'ai simplement voulue expliqué à un étudient les bases de la sécurisation d'un cookies. Le reste du code est simplifier à l’extrême et sûr-commenté pour qu'un étudient qui place sont password en clair dans un cookies puisse comprendre...

Personne n'utiliserai mon code (fait en 5 minutes pour m'amuser et tenter d'expliquer) en prod, il faudrait être un idiot pour le faire !

Maintenant que vous avez pointez du doit l’évidence proposez au moins un script fonctionnel...

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment