Securité BDD

Mammouth du PHP | 620 Messages

27 janv. 2011, 18:02

Bonjour,
j'ai sur mon site un petit livre d'or.
je souhaiterai savoir si je peu le protéger un peut plus qu'il ne l'est.
Actuellement j'ai un captcha pour eviter les robots et mis une obligation a l'internaute de laisser son nom et un message.
J'ai egalement pour proteger contre les injection fait :
$ip = $_SERVER[REMOTE_ADDR] ;
$nom = mysql_real_escape_string($_POST['nom']);
$email = mysql_real_escape_string($_POST['email']);
$url = mysql_real_escape_string($_POST['url']);
$ville = mysql_real_escape_string($_POST['ville']);
$message = mysql_real_escape_string($_POST['message']);

//esuite j'ai mes test 

//puis je rentre les données dans la base.
$sql = "INSERT INTO livre(id, nom, email, url, ville, note, message, date, ip)
VALUES('','$nom','$email','$url','$ville','$note','$message',NOW(),'$ip')";
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error()); 



Penssez vous que les protections sont suffisante ou pouvez vous me dire si on peu (si necessaire) proteger un peu plus.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 janv. 2011, 18:39

yop,

je suis pas un spécialiste mais ça devrait aller :)

ajoute quand même une vérification de l’existence des variables avant leur utilisation (isset / empty) ça éviter un message d'erreur qui aide le "hackeur" à te pourris ton site :)


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 620 Messages

27 janv. 2011, 18:50

ok merci. pour les test je fais déjà :

Code : Tout sélectionner

if(empty($nom)) { print("<center>Le '<b>Nom</b>' est vide !</center>"); echo '<a href="javascript:history.back();">Retour</a>'; exit(); }

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 janv. 2011, 20:06

if (empty($_POST['nom'])) pour être certain que le formulaire comporte nom comme input ($nom tu l'affecte au dessus pas besoin)

@+
Il en faut peu pour être heureux ......