je viens vous soumettre un formulaire de création de compte sur un site, j'aimerais savoir si il est suffisament sécurisé ?
// on initialise la variable d'erreur
$error = 0;
// Vérification des données
$check_pass = strcmp($_POST['password'], $_POST['password2']);
if($check_pass != '0')
{
$error = 1;
echo '<font class=\'error\'>'.$lang_password_wrong.'</font><br /><br />';
}
$check_mail = strcmp($_POST['mail'], $_POST['mail2']);
if($check_mail != '0')
{
$error = 1;
echo '<font class=\'error\'>'.$lang_mail_wrong.'</font><br /><br />';
}
// REGEX pour s'assurer que le login est correct
strip_tags($_POST['login']);
if(!preg_match('#^(?>[[:alnum:]]+)$#', $_POST['login']))
{
$error = 1;
echo '<font class=\'error\'>'.$lang_login_unvalid.'</font><br /><br />';
}
// On interdit le < dans le mot de passe
strip_tags($_POST['password']);
if(!preg_match('<', $_POST['password']))
{
$error = 1;
echo '<font class=\'error\'>'.$lang_pass_unvalid.'</font><br /><br />';
}
// REGEX pour s'assurer que l'e-mail est correcte
strip_tags($_POST['mail']);
if(!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-.]?[[:alnum:]])*\.([a-z]{2,4})$`', $_POST['mail']))
{
$error = 1;
echo $lang_mail_unvalid;
}
// on vérifie que le login est unique
$sql = "SELECT *
FROM USERS
WHERE user_login = '".$_POST['login']."'";
$query = mysql_query($sql) OR die('Erreur : '.mysql_error());
$rows = mysql_num_rows($query);
if($rows != 0)
{
$error = 1;
echo '<font class=\'error\'>'.$lang_login_used.'</font><br /><br />';
}
// on vérifie que le mail est unique
$sql = "SELECT *
FROM USERS
WHERE user_mail = '".$_POST['mail']."'";
$query = mysql_query($sql) OR die('Erreur : '.mysql_error());
$rows = mysql_num_rows($query);
if($rows != 0)
{
$error = 1;
echo '<font class=\'error\'>'.$lang_mail_used.'</font><br /><br />';
}
// Si il y'a pas d'erreur, on fait l'enregistrement
if($error == 0)
{
$sql = "INSERT INTO USERS
VALUES ('', '".$_POST['login']."', '".md5($_POST['password'])."', '".$_POST['mail']."', '0', '0', '0', '".md5($_POST['login'])."')";
$query = mysql_query($sql);
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "To: $to\r\n";
$entete .= "From: $from\r\n";
if(!mail($to, $sujet, $message, $entete))
echo '<font class=\'error\'>'.$lang_mail_error.'</font>';
else
echo $lang_registered.'<br /><br />';
exit();
}
Merci d'avance pour l'attention que vous y porterez : )