Injection sql ?

Mammouth du PHP | 643 Messages

02 févr. 2018, 08:12

Salut à tous.
Je vois qu'un script automatique ou un petit malin s'amuse à me pourrir mon contenu.
Je change régulièrement quasi tous les jours le contenu de ma colonne description.
Le petit malin en question s'amuse à rajouter dans chacune de me description ceci :
<script>window.location.reload()</script> ( ma page charge en permanence en gros )

Je pense donc à une faille de mon côté et je voudrais savoir comment sécurisé par exemple le champ de mon formulaire:

Vérification
<?php
   //Verification description
  if(empty($_POST['description']))
  {
   $erreurs['description'] = 'Renseigner une description';
  }
?>
Requete:
// requete INSERT ....
	   $req = $bdd->prepare('INSERT INTO loisirs ( id_simply_user,description) VALUES (:id_simply_user, :description)');   
	   $retour= $req->execute(array(
	   
	   		  'id_simply_user'=>$id,
			  'description'=>$_POST['description']
			   ));
			  $idloisirs = $bdd->lastInsertId();
			  
			  unset($_POST);
Formulaire:
<label>Détail de votre sortie</label>
<textarea class="form-control" rows="5" name="description"><?php echo !empty($_POST['description']) ? $_POST['description'] : NULL; ?></textarea>
<?php echo !empty($erreurs['description']) ? '<div class="alert alert-danger" role="alert"><i class="fa fa-exclamation-triangle"></i>' .$erreurs['description'].'</div>' : NULL;?>

Mammouth du PHP | 688 Messages

02 févr. 2018, 08:29

http://php.net/manual/fr/function.htmlspecialchars.php
indispensable à l'affichage pour tout contenu soumis par un utilisateur.