securisation de formulaire

Eléphanteau du PHP | 11 Messages

31 juil. 2015, 13:22

Bonjour,
j'ai un formulaire avec les requêtes préparées et je me demande si je suis bien protéger contre les injections
voici ;
if(isset($_POST['ok']))
	{
			$sender="EL".$id;
			$matr="AD".$_POST['matr'];
			$message=htmlentities($_POST['message']);
			try {
     $sql= $DB->prepare("INSERT INTO news(sender, matr, date, message) VALUES
				(:sender, :matr, :date, :message) ") ;
				$sql->bindParam(';sender',$sender,PDO::PARAM_STR);
				$sql->bindParam(':matr',$matr,PDO::PARAM_STR);
				$sql->bindParam(':date',$date,PDO::PARAM_STR);
				$sql->bindParam(':message',$_POST['message'],PDO::PARAM_STR);
				$sql->execute();
					 echo "<script language='javascript'>";
						echo "alert('Professeur ajouté');";
						echo "window.location.replace('newsajout.php');" ; 
					echo "</script>"; 
					
	}
	catch ( Exception $e ) {
   echo "<script language='javascript'>";
						echo "alert('Professeur ajouté');";
						echo "window.location.replace('newsajout.php');" ; 
					echo "</script>"; 
  die();
	}
}
et voici le formulire
<form name="contact" action="contact.php" method="POST">


				Matr.
							<input type="text" name="matr" />
								
				Message     <textarea name="message" cols="30" rows="15">
							</textarea>
							
							<tr>
							<input type="submit" name="ok" value="Envoyer">
							
				</form>

Mammouth du PHP | 688 Messages

31 juil. 2015, 15:34

utilisation de pdo donc oui.

ynx
Mammouth du PHP | 586 Messages

03 août 2015, 13:59

Salut,

En utilisant correctement les requêtes préparées comme tu le fais, tu es effectivement bien protégé contre les injections sql.

Petite remarque : l'utilisation de htmlentities() sur les données avant l'enregistrement en bdd n'est pas recommandé. Tes données devraient être enregistrées en bdd tel quel et l'utilisation de htmlentities() devrait être fait uniquement à l'affichage des données dans un document html.

Bonne journée