Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/03/2011, 13h15   #1
Nouveau Membre du Club
 
Avatar de Gizmil
 
Inscription : août 2007
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 143
Points : 29
Points : 29
Par défaut Sécurité et options d'un formulaire

Salut,

j'aimerais savoir s'il n'est pas dangereux, niveau sécurité, de créer des champs texte tels que input ou textarea dans lesquels il est possible d'insérer du html ?

Comment puis-je empêcher l'insertion de certaines balises ou de toutes les balises et en autoriser d'autres ? En fait, j'aimerais autoriser l'insertion d'images (smileys) que je pense éventuellement faire apparaître de cette façon :

HTML :

CSS :

Code :
1
2
3
4
5
smiley1{  
    height:16px;  
    width:16px;  
    background-image:url(monsmiley1.png);  
}
J'aimerais également savoir comment insérer un contenu de variable String dans un champ textarea via un bouton.

Merci! (-;
Gizmil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 13h38   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
une donnée est une donnée. Du moment que tu traites ta donnée en tant quel, elle n'est pas dangeureuse intrisequement.

Apres si tu veux afficher la donnée ça se complique. Si tu autorises tout et n'importe quoi, ce n'est pas dangereux pour toi mais pour ton visiteur qui verra une page qui pourra être vandalisée.

Pour lutter contre ça, il suffit d'un peut d'astuce et de limiter les balises authorisées dans le code html. Tidy fait ça tres bien.

Si tu passes en xhtml avec un code non valide, la page ne s'affichera pas du tout ce qui est aussi un autre probleme.

pour ton second probleme, tu fais un bouton genre <button> ou <input type="button" /> je ne sais pas quel langage tu utilises et avec un peu de JS (prototype => 1 updater() ) et tu places un listener sur le onclick.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 13h38   #3
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ce n'est pas l'insertion qui pose problème mais ce que tu fais ensuite des données saisies.

Le plus simple est de ne pas autoriser le HTML ; donc utilisation de strip_tags() eventuellement et htmlentities() ensuite pour le ré-affichage des données.

Tu peux ensuite prévoir un système à la faç on BBCODE [smiley][/smiley] avec une expression régulière qui fait la transformation.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 13h41   #4
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Code php :
1
2
3
4
5
6
7
8
 
  function allowed_tags($input, $validTags = ''){
        $regex = '#\s*<(/?\w+)\s+(?:on\w+\s*=\s*(["\'\s])?.+?\(\1?.+?\1?\);?\1?|style=["\'].+?["\'])\s*>#is';
        return preg_replace($regex, '<${1}>',strip_tags($input, $validTags));
  } 
 
echo allowed_tags('<strong><i>hello world!</i></strong>'); // hello world! (en gras et italique)
echo allowed_tags('<strong><i>hello world!</i></strong>', '<i>');//hello world! (uniquement en gras)

?
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 16h03   #5
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
pour le bbcode j'avais repris une classe d'un forum punbb à l'époque.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h40.


 
 
 
 
Partenaires

Hébergement Web