Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1232 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Sécurité & Formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sécurité & Formulaire

n°1406850
twisted
Ahhhhhhhh !
Posté le 14-07-2006 à 11:55:16  profilanswer
 

Bonjour,  
 
Je me pose une question au niveau de la sécurité concernant les formulaires en PHP.
 
En effet, je voudrais savoir comment sécuriser au maximum mon site sachant que j'ai quelques textarea avec editeur wysiwyg.
Je dois donc autoriser le html et bien sûr ne pas avoir de  \' p artout.
 
Peut-on autoriser uniquement certaines balises html ? (ça m'embeterais que des malins s'amusent à mettre des <h1> sur mon livre d'or...)
 
Il faudrais aussi que le javascript ne soit pas interprété et que les injections SQL ne fonctionnent pas.
 
Je connais ces fonctions :
- htmlentities()
- html_entity_decode()
- addslashes()
- stripslaches()
 
Y en a t-il d'autres ? Et comment utiliser ces fonctions à bon escient ?
 
si vous avez des solutions efficaces et ou des url avec des articles intéressants, je suis preneur.
 
Merci d'avance

mood
Publicité
Posté le 14-07-2006 à 11:55:16  profilanswer
 

n°1406897
AlphaZone
Posté le 14-07-2006 à 13:56:05  profilanswer
 

htmlspecialchars

n°1406911
twisted
Ahhhhhhhh !
Posté le 14-07-2006 à 14:16:59  profilanswer
 

AlphaZone a écrit :

htmlspecialchars


 
oui, bien sûr  :)  
c'est quasi la même fonction que htmlentities (mais ne convertit pas les accents).
 
personne n'a des liens vers articles avancés sur ce sujet ?

n°1407017
sielfried
Posté le 14-07-2006 à 18:21:01  profilanswer
 

Avant de balancer la valeur en bdd (je suppose que tu stockes ça dans une bdd), si c'est du mysql, passe un coup de mysql_real_escape_string dessus (tout en entourant de quotes). Si c'est une autre bdd, je sais pas, mais à défaut d'une telle fonction, addslashes est souvent suffisant.
 
Après avoir récupéré la valeur dans la bdd, utilise htmlentities (ou htmlspecialchars) avant d'afficher.
 
Tout ceci implique que PHP soit configuré avec magic_quotes à off, ce qui est conseillé (dans le cas contraire, utiliser stripslashes avant mysql_real_escape_string).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1407024
twisted
Ahhhhhhhh !
Posté le 14-07-2006 à 18:31:31  profilanswer
 

Merci pour ta réponse. C'est ce que je faisais, mais justement cela me pose problème au niveau de htmlentities. Il faut mettre cette fonction pour la sécurité de l'application mais je propose un editeur wysiwyg (couplé aux texarea) pour certains modules.  
comment faire pour que tout soit sécurisé tout en interprétant les balises html ?

Message cité 1 fois
Message édité par twisted le 14-07-2006 à 18:32:19
n°1407099
sielfried
Posté le 14-07-2006 à 22:49:01  profilanswer
 

twisted a écrit :

Merci pour ta réponse. C'est ce que je faisais, mais justement cela me pose problème au niveau de htmlentities. Il faut mettre cette fonction pour la sécurité de l'application mais je propose un editeur wysiwyg (couplé aux texarea) pour certains modules.  
comment faire pour que tout soit sécurisé tout en interprétant les balises html ?


 
Soit tu te fais ton propre système de "bbcode" avec à la HFR (en gérant tout au preg_replace), soit tu utilises strip_tags en autorisant seulement les balises que tu souhaites... par contre les autres seront du coup complètement zappés du message originel.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1407105
twisted
Ahhhhhhhh !
Posté le 14-07-2006 à 23:10:35  profilanswer
 

strip_tags(), je viens de lire la doc, en effet, très intérressant ;-)
 
merci bcp pour tes réponses

n°1407629
supermofo
Hello World !
Posté le 16-07-2006 à 17:40:09  profilanswer
 

sielfried a écrit :

Avant de balancer la valeur en bdd (je suppose que tu stockes ça dans une bdd), si c'est du mysql, passe un coup de mysql_real_escape_string dessus (tout en entourant de quotes). Si c'est une autre bdd, je sais pas, mais à défaut d'une telle fonction, addslashes est souvent suffisant.
 
Après avoir récupéré la valeur dans la bdd, utilise htmlentities (ou htmlspecialchars) avant d'afficher.
 
Tout ceci implique que PHP soit configuré avec magic_quotes à off, ce qui est conseillé (dans le cas contraire, utiliser stripslashes avant mysql_real_escape_string).


 
addslashes est *facilement* contournable !

n°1407660
twisted
Ahhhhhhhh !
Posté le 16-07-2006 à 18:39:55  profilanswer
 

supermofo a écrit :

addslashes est *facilement* contournable !


 
ah bon ?  :??:  
quelle fonction ou quel algorithme passer aux variables récupérées en $_POST pour n'avoir aucun soucis alors ?

Message cité 1 fois
Message édité par twisted le 16-07-2006 à 18:40:11
n°1407686
supermofo
Hello World !
Posté le 16-07-2006 à 19:20:50  profilanswer
 

twisted a écrit :

ah bon ?  :??:  
quelle fonction ou quel algorithme passer aux variables récupérées en $_POST pour n'avoir aucun soucis alors ?


 
Oui la solution HFR me semble etre ok ! cf sielfried

mood
Publicité
Posté le 16-07-2006 à 19:20:50  profilanswer
 

n°1407748
sielfried
Posté le 16-07-2006 à 21:50:48  profilanswer
 

supermofo a écrit :

addslashes est *facilement* contournable !


 
Possible, m'enfin en tout cas c'est mieux que rien.
 
twisted > ben mysql_real_escape_string (si t'es pas sur du mysql, renseigne-toi sur une éventuelle fonction équivalente).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Sécurité & Formulaire

 

Sujets relatifs
[pb]A partir d'un formulaire copie dans un txtDéclencher un envoi de formulaire
[Hacking ?] Requetes mysql dans un formulaireSauvegarde formulaire non complet
Warning: set_time_limit() est inactive pour des raisons de sécuritéformulaire
formulaire : alignement à droite dans zone saisie ?problème avec mon formulaire perl/cgi (debutant)
[html/js] Conseil sécurité et formulaire htmlPHP et sécurité, exécution de scripts via un formulaire.
Plus de sujets relatifs à : Sécurité & Formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR