2010-05-06 15 views
-2

je recherche une aide et une attention bien ici ..Besoin d'aide ... comment ajouter md5 au champ mot de passe en php?

je l'ai acheté il y a quelque script php de nombreuses années et maintenant ne suport plus ... je veux juste ajouter md5 au champ de mot de passe ..

ici ma forme :

<?php 
$SQL = "SELECT * from USERS WHERE USERNAME = '$_SESSION[username]'"; $result = @mysql_query($SQL); $row = @mysql_fetch_array($result); 

include 'menu.php'; 
?> 
<FORM METHOD="post" ACTION="?page=query_client"> 
<INPUT TYPE="hidden" NAME="controller" VALUE="USERS~update~account_details&up=1~<?php echo $row[ID]; ?>"> 

<TABLE CLASS="basictable"> 
    <TR> 
    <TD CLASS="tdmenu" WIDTH="40%">Username</TD> 
    <TD CLASS="tdmenu" WIDTH="60%"> 
    <b><?php echo $row[USERNAME]; ?></b> 
    </TD> 
    </TR> 
    <TR> 
    <TD CLASS="tdmenu" WIDTH="40%">Password *</TD> 
    <TD CLASS="tdmenu" WIDTH="60%"> 
    <INPUT TYPE="PASSWORD" NAME="PASSWORD" SIZE="40" VALUE="<?php echo $row[PASSWORD]; ?>"> 
    </TD> 
    </TR> 
    <TR> 
    <TD CLASS="tdmenu" WIDTH="40%">Email Address *</TD> 
    <TD CLASS="tdmenu" WIDTH="60%"> 
    <INPUT TYPE="text" NAME="EMAIL" SIZE="40" VALUE="<?php echo $row[EMAIL]; ?>"> 
    </TD> 
    </TR> 
    <TR> 
    <TD CLASS="tdmenu" WIDTH="40%">Full Name *</TD> 
    <TD CLASS="tdmenu" WIDTH="60%"> 
    <INPUT TYPE="text" NAME="FULLNAME" SIZE="40" VALUE="<?php echo $row[FULLNAME]; ?>"> 
    </TD> 

    <TR> 
    <TD CLASS="tdmenu" WIDTH="40%">Address *</TD> 
    <TD CLASS="tdmenu" WIDTH="60%"> 
    <INPUT TYPE="text" NAME="ADDRESS1" SIZE="40" VALUE="<?php echo $row[ADDRESS1]; ?>"> 
    </TD> 
    </TR> 

<BR> 
<TABLE CLASS="basictable"> 
    <TR> 
    <TD CLASS="tdhead2" > 
    <DIV ALIGN="CENTER"><B> 
    <INPUT TYPE="submit" NAME="Submit" VALUE="Submit"> 
    </B></DIV> 
    </TD> 
    </TR> 
</TABLE> 
</FORM> 

et

elle-même comme query_client.php regarder à l'intérieur comme:

<?PHP 
@session_start(); 

$controller = $_POST['controller']; 
$pieces = explode("~", $controller); 
$table = $pieces[0]; 
$qt = $pieces[1]; 
$return = $pieces[2]; 
$id = $pieces[3]; 
$hack = $pieces[4]; 

if ($qt == insert) $qt = 'INSERT INTO'; 
if ($qt == update) { $qt = 'UPDATE'; $end = "WHERE ID = '$id'"; } 
$pre = array_keys($_POST); 

mysql_query ("CREATE TABLE IF NOT EXISTS `$table` (`ID` INT NOT NULL AUTO_INCREMENT , PRIMARY KEY (`id`))"); 

$count = count($pre); $count = $count - 2; 
$sql = "$qt $table SET"; 
for ($i=0; $i < $count; $i++) 
{ 
$x=$i+1; 
$y = $_POST[$pre[$x]]; 
$d = $y; 
mysql_query ("ALTER TABLE `$table` ADD `$pre[$x]` TEXT NOT NULL"); 
$sql .= " `$pre[$x]` = '$d',"; 
} 
$sql .= " ID = '$id' $end"; 
$query = mysql_query($sql) or die("$sql_error" . mysql_error()); 

if (empty($hack)) { } else { 
$pieces = explode("/", $hack); 
$h0 = $pieces[0]; 
$h1 = $pieces[1]; 
$h2 = $pieces[2]; 
$h3 = $pieces[3]; 
$h4 = $pieces[4]; 
$h5 = $pieces[5]; 

mysql_query ("ALTER TABLE `$table` $h0 $h1 $h2 $h3 $h4 $h5"); 
$query = mysql_query($sql) or die("$sql_error" . mysql_error()); 
} 

if (isset($_GET[inc])) include "$_GET[inc].php"; 

?> 

donc s'il vous plaît aidez-moi comment ajouter md5 dans le champ MOT DE PASSE? merci d'avance ..

+2

est-ce que vous comprenez que vous devrez ajouter un md5 à la vérification du mot de passe? En tout cas ça ne t'aidera pas avec un tel 'include '$ _GET [inc] .php"; 'un code vulnérable ... plus je regarde dans ce code plus je me fais peur –

+0

OK Col. Shrapnel, j'ai apprécié ton gentil commentaires mais je suis aveugle à php, et laissez-moi savoir pour résoudre ce problème ...? à partir du code vulnérable et aussi ajouter md5 au champ mot de passe? – jones

+5

le seul moyen possible est d'embaucher un programmeur. sans blague. le code entier est terrible et doit être jeté et réécrit. –

Répondre

2

utiliser au mieux un sel aussi - et la vérification doivent hash être effectuées au serveur - voir secure hash and salt for PHP

Quelques liens sur l'écriture de code sécurisé:

+0

ok juste s'il vous plaît aidez-moi comment faire, tout échantillon lié à mon script ci-dessus.? – jones

+1

@jones: Je pense que la chose la plus prudente à faire serait de suivre les conseils de commentaires à votre poste, c'est-à-dire de le réécrire en toute sécurité. J'ai ajouté des liens supplémentaires qui peuvent être utiles pour ce faire. – bignum

+0

@ biffabacon, belle suggestion mate, merci beaucoup – jones