Interdire l'envoi d'un formulaire si html

tybmhi Messages postés 217 Statut Membre -  
macgawel Messages postés 676 Statut Membre -
Bonjour,

J'ai un mec qui m'envoie des messages avec du html dedans a partir d'un formulaire de mon site et qui pourri mon site. Le html apparait sous sa forme bute.

Comment éviter cela ? En php j'ai dejà mis ça pour le traitement du message:

$message = nl2br(htmlspecialchars($_POST['message']));

J'aimerai en fait carrement interdire l'envoi de formulaire au complet si dans le message on trouve des liens ou des adresse internet. Est-ce possible ?

Merci d'avance

6 réponses

  1. tybmhi Messages postés 217 Statut Membre 12
     
    Merci beaucoup de ta réponse mais est-ce que tu peu m'en dire plus ? Je débute en création de site. C'est certainement pour cela que je dois être une proie facile pour les "pirates".
    0
  2. Utilisateur anonyme
     
    tu le mets de partout :
    htmlentities($_post['user'])
    htmlentities($_post['mot de passe'])
    htmlentities($_post['message']) etc.. comme ca il ne pourra plus injecter de html
    0
  3. tybmhi Messages postés 217 Statut Membre 12
     
    Ok nickel mais est-ce correct :

    $message = nl2br(htmlentities(htmlspecialchars($_POST['message'])));
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Utilisateur anonyme
     
    je ne peux pas tester mais ça m'a l'air correcte^^
    0
  6. macgawel Messages postés 676 Statut Membre 89
     
    Bonjour.

    Exemple pour supprimer toutes les balises d'un texte :
    $search = array ("'<[\/\!]*?[^<?>]*?>'si");  // Supprime les balises HTML
    $replace = array ("");
    $texte = preg_replace($search, $replace, $texte);


    Et si tu veux empêcher la validation en cas de saisie d'une balise :
    if ( preg_match ("'<[\/\!]*?[^<?>]*?>'si", $texte ) ) {
       die ('Merci de ne pas utiliser de balises html');
    }


    Ca devrait suffire pour un filtrage "de base".
    0