Controle securite formulaire

annemarie1 Messages postés 85 Statut Membre -  
Zep3k!GnO Messages postés 2049 Statut Membre -
Bonjour,

pourriez vous me dire si ce formulaire est suffisamment sécurisé ?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Affiche le nom</title>
</head>
<body>
<p> </p>
<form id="form1" name="form1" method="post" action="">
<p>Nom; : <?php echo htmlspecialchars($_POST['nom'], ENT_QUOTES); ?>
<input type="text" name="nom" id="nom" />
<br />
</p>
<p>Prénom : <?php echo htmlspecialchars($_POST['nom'], ENT_QUOTES); ?>
<input type="text" name="prenom" id="prenom" />
<br />
<br />
Prénom : <?php echo htmlspecialchars($_POST['nom'], ENT_QUOTES); ?>
<input type="text" name="prenom2" id="prenom2" />
</p>
<p>Ville; : <?php echo htmlspecialchars($_POST['ville'], ENT_QUOTES); ?>
<input type="text" name="ville" id="ville" />
</p>
<p>Portable; : <?php echo htmlspecialchars($_POST['portable'], ENT_QUOTES); ?>
<input type="text" name="portable" id="portable" />
</p>
<p>
<input type="submit" name="formulaire" id="formulaire" value="Envoyer" />
</p>
<?php function htmlentities_array($array,$options=ENT_QUOTES) {

foreach($array as $key => $val) {
if (!is_array($array[$key])) {
$array[$key] = htmlentities($val,$options);
}
else
{
$array[$key] = htmlentities_array($array[$key],$options);
}
}

}
?>
</form>
</body>
</html>

merci pour votre aide

5 réponses

Zep3k!GnO Messages postés 2049 Statut Membre 200
 
Heuu qu'est ce que tu entend par sécurisé ? ?
Je ne vois pas ce que ton bout de code fait a part afficher des données envoyées par le formulaire quand on l'a submit ... tu veux sécuriser quoi ? y a rien de sensible la...
0
annemarie1 Messages postés 85 Statut Membre
 
bonjour

merci pour ta réponse

je me suis trompé de script , j'ai eu ce formulaire sur le net et j'aimerai rajouter la fonction htmlentities() contre les failles html peut tu me dire ou placer cette fonction dans le script?
Je suis null en php et je remets pour un ami un site en ligne qui à été piraté ..

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ « Prenom » est vide ou incomplet.</span>";
$errf_2=1;
}
if(strlen($f_3)<2){
$erreur.="<li><span class='txterror'>Le champ « Date de naissance » est vide ou incomplet.</span>";
$errf_3=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:Site@Tfgospelsingers.com\n";
$corps.="Nom : ".$f_1."\n";
$corps.="Prenom : ".$f_2."\n";
$corps.="Date de naissance : ".$f_3."\n";
if(mail("secretariat@gggg.com", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen"><!--
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: black; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
<title>Document sans titre</title>
</head>

<body>
<? if($ok_mail=="true"){ ?>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
<tr><td> </td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td> </td></tr>
<tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b> ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Nom* :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Prenom* :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Date de naissance* :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
<? } ?>
</body>
</html>

Merci pour ton aide
Anne Marie
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
Il faut que tu le places genre :
<?echo htmlentities(nl2br(stripslashes($corps)));?>

<?echo htmlentities($erreur);?>

<?echo htmlentities(stripslashes($f_1));?>
<?echo htmlentities(stripslashes($f_2));?>
<?echo htmlentities(stripslashes($f_3));?>

Voilà !

A noter que htmlentities ne fait que convertir des caractères spéciaux en entité html donc il n'y aucune "faille" c'est simplement pour que tes caractères spéciaux soient correctement encodés donc affichés...
0
annemarie1 Messages postés 85 Statut Membre
 
Merci en fait d'apres toi ce formulaire présente t'il un risque ou pas ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
ouaip je vois pas de soucis étant donné que les données que tu récupères dans le formulaires tu t'en sers que pour de l'affichage, tu ne manipules pas la BDD avec, tu fais pas d'include vis ç vis d'elles....y a que le mail mais bon c'est dans le corps du message, faut juste faire attention aux mails que vous recevrez, la il peut avoir de l'injection, mais faut que le mec ai envie de se prendre la tête... Je pense pas que t'aura des soucis..
0