Bzh

  • Nombre de sujets
    62
  • Nombre de messages
    1 503
  • Nombre de commentaires
    24
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Bzh
le 28/04/2005 à 12:32
Sécurité: authentification et cookies
La on en revient au danger d' enregistrer dans la base, les mots de passe hachés en md5() !!!

L' inconvénaniant du md5() est que plusieurs valeurs peuvent donner comme résultat le même md5().

Je m' explique:
<?php

$mot_de_passe = $_POST['mot_de_passe'];
$identifiant = $_POST['identifiant'];

//je passe la protection des variables (sql injection, etc...)

$mot_de_passe_base_de_donné = md5($mot_depasse);

$requette = 'SELECT id FROM base_utilisateur WHERE identiant="'.$identifiant.'" AND mot_de_passe="'.$mot_de_passe.'" LIMIT 2';

//etc...

?>


Si on suit cette logique, et bien plusieur mot de passe fonctionneront...

Car plusieur mot_de_passe peuvent donner las même valeur md5(). Or, si le mot de passe est enregistré en brut, et bien, seul le même mot de passe fonctionnera...

Je ne suis pas persuadé, que la méthode du mot de passe en md5() soit la méthode la plus sur.

Avec un peu de patience, en faisant un boucle, on arrive bien sur à trouver une valeur correspondant au md5() trouvé.

Ciao...
Bzh
le 28/04/2005 à 12:22
session "headers already sent by"
Pkoi ne pas mettre tout simplement le session_start() en première ligne de chaque page ???

Comme ça, plus de problème !!!!

C' est un reflexe qu' il est important de prendre.

Ciao...
Bzh
le 25/04/2005 à 19:12
Sécurité: authentification et cookies
Plus tu cryptera d' informations, plus ton cookie sera sécurisé !!!!

N' hésites pas à ajouter au mot de passe, des valeurs totalement loufoque ( exemple: le prénom de ta grand mère )...

Par exemple, j' aime bien utiliser "time()"...

Ensuite, MD5(), à une comme taille de bloc "16", ce qui est peu comparé à d' autre algorithme de hachage !!!


mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)
mhash_keygen_s2k -- Génère une clé
Description
string mhash_keygen_s2k ( int hash, string password, string salt, int bytes)

mhash_keygen_s2k() génère une clé de bytes octets de long, à partir d'un mot de passe. Cette fonction utilise l'algorithme Salted S2K, spécifié dans OpenPGP (RFC 2440). Cet algorithme va utiliser l'algorithme de hashage hash pour créer la clé. Le paramètre salt doit être différent et suffisamment aléatoire pour chaque clé que vous génèrez, afin de créer des clés différentes. Ce grain de sel réservira lorsque vous vérifierez les clés : c'est alors une bonne idée que de l'ajouter à la fin de la clé générée. salt doit avoir la longueur de 8 octets, et sera complété par des 0 si vous ne fournissez par suffisamment de données.

N'oubliez pas que les mots de passe fournis par les utilisateurs ne sont pas conseillé pour faire des clés cryptographique, étant donné que les utilisateurs normaux retiennent des mots de passe qu'ils peuvent saisir au clavier. Ces mots de passe utilisent uniquement 6 à 7 des 8 bits d'un caractère (voir moins). Il est vivement recommandé d'appliquer une fonction de transformation (comme celle-ci), à un mot de passe utilisateur.


Voici le lien de la fonction

Ciao...
Bzh
le 25/04/2005 à 16:08
Erreur sur une requete SQL
<?php
// on se connecte à notre base
$base = mysql_connect ('serveur', 'login', 'pass');
mysql_select_db ('ma_base', $base) ;
?>
<html>
<head>
<title>Modification du tél et de l'adresse de Benoît</title>
</head>
<body>
<?
// lancement de la requête
$sql ='UPDATE liste_proprietaire SET adresse="3, rue des tulipes", age="65" WHERE nom="Benoît"';

// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

// on ferme la connexion à la base
mysql_close();
?>
L'adresse et l'age de Benoît viennent d'être modifiés.
</body>
</html>


Merci Laglobule pour ses cours !!!!

Voici le lien de son cours

Il ne faut pas mettre AND mais les séparer par des virgules...

Voili voilou...

Ciao...
Bzh
le 25/04/2005 à 14:49
Erreur sur une requete SQL
Pour commencer, se serait bien que tu revois les différences entre simple guillement et double guillement !!!

Donc :

<?php
$npassc = md5($npassc);
$change = 'UPDATE recherche SET mdp="'.$npassc.'" WHERE id="'.$id.'" ';
$enregistre = mysql_query($change, $beh) or die('Erreur SQL !'.$enregistre.''.mysql_error());

?>


ou

<?php
$npassc = md5($npassc);
$change = "UPDATE recherche SET mdp=\"$npassc\" WHERE id=\"$id\"";
$enregistre = mysql_query($change, $beh) or die('Erreur SQL !'.$enregistre.''.mysql_error());

?>


Je te coneil la première solution afin de profiter des magics quottes et donc être un peut plus protêgé des injections de SQL...

Ensuite, l' erreur te dit "supplied argument is not a valid" ce qui veut dire que l' argument passé n' est pas correct !!!!

En effet, mysql_query() ne demande qu' un seul argument !!!

Donc =>
<?php
$npassc = md5($npassc);
$change = 'UPDATE recherche SET mdp="'.$npassc.'" WHERE id="'.$id.'" ';
$enregistre = mysql_query($change) or die('Erreur SQL !'.$enregistre.''.mysql_error());

?>



Voila, cela devrait être mieu...

Bye...
Bzh
le 25/04/2005 à 14:28
html dans form
J' ai fait un petit tour sur ton site...

Le site est très acceuillant, la navigation est facile et le design est plutot réussi !!!

Parcontre, avec firefox, le menu à quelques petits problèmes...

Rassure toi, rien de très grave...

Bye...
LoadingChargement en cours