Besoin d'aide pour sécuriser un script

sky_striker Messages postés 41 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 28 octobre 2005 - 25 janv. 2005 à 17:51
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 26 janv. 2005 à 14:53
Bonjour,
Je me sert de htmlarea (editeur html WYSIWYG pour site web). Je souhaiterais enregistrer les données issues de ce script dans ma base de donnée. Hélas je ne peux pas utiliser htmlentities ni strip_tags pour gérer les problémes d'injection de code. Ces fonctions altérant le code HTML renvoyé par htmlarea ... De plus j'ai lu que la fonction addslashes utilisé seule ne garantit pas une protection suffisante

Auriez vous un ptit conseil pour hacher efficassement mes données (texte HTML) avant de les enregistrer dans ma BDD ...

Merci d'avance à tous

JP DC

Tout les hommes meurent un jour mais peu d'entre eux vivent vraiment

12 réponses

cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
25 janv. 2005 à 17:57
Utilise la commande htmlentities(string) pour changé les <, >, etc. par leur code HTML qui va l'afficher.

----------------

eXon
http://www.lookstrike.com
0
sky_striker Messages postés 41 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 28 octobre 2005
25 janv. 2005 à 18:01
Si j'utilise htmlentities et que je réaffiche la chaine derriére elle n'est plus interprété comme du html par internet explorer ... Autrement dit les balises apparaissent "en clair" sur la page ...

Tout les hommes meurent un jour mais peu d'entre eux vivent vraiment
0
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
25 janv. 2005 à 18:16
Si c'est l'executé ton code HTML je ne vois pas le problème. Tu n'as
qu'à utilisé un addslashes lorsque tu l'envoi et stripslashes pour les
enlever lors de l'affichage.

----------------

eXon
http://www.lookstrike.com
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
25 janv. 2005 à 18:19
Salut ;-)



un addslashes et un truc de ce genre :



$texte=preg_replace('`(<script(.*?)>|</script>)`sim','',$texte);



ça fera sauter le javascript ;-)



a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sky_striker Messages postés 41 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 28 octobre 2005
26 janv. 2005 à 09:57
Ce que je voudrais c utiliser le HTML uniquement et me prémunir de toute injection de code ... La addslashes ne protége pas d'éventuelles injection de code et la solution de Anthomicro ne me protége que de l'injection javascript ...

Est - ce que quelqu'un peux me livre ce pti secret ?

Tout les hommes meurent un jour mais peu d'entre eux vivent vraiment
0
sky_striker Messages postés 41 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 28 octobre 2005
26 janv. 2005 à 09:59
J'ai oublié une autre question comment se protéger dans ce cadre d'éventuelles injection SQL ???

Tout les hommes meurent un jour mais peu d'entre eux vivent vraiment
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
26 janv. 2005 à 14:03
Ah ok je comprends mieux. Même si du code PHP est entré dans ta base,
il ne sera pas analysé par php. Le tout est de bien utiliser la
fonction addslashes. Ensuite le bout de code que je t'ai passé enlève
les balises correspondant au javascript pour éviter d'afficher des
messagesbox, de faire des redirections...



Mais si tu nous précisais vraiment à quoi sert ton script, ce que tu veux faire on pourrait peut être t'aider mieux.



Donc la fonction addslashes protège complètement les insertions dans ta
base. Comme l'insertion est protégée, je ne vois pas ce que tu peux
faire de plus...



Pour éviter les failles de SQL injection : outre le fait d'utiliser
addslashes, je préconise pour les logins et passwords d'empêcher les
caractères spéciaux via une expression régulière :



if(eregi("[\^'$()*+<>?#"{}\\]",$pseudo_membre) OR eregi("[\^'$()*+<>?#"{}\\]",$passe_membre))

{

//il y a des caractères spéciaux

exit;

}



a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
sky_striker Messages postés 41 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 28 octobre 2005
26 janv. 2005 à 14:11
Salut et merci,

C'est pour afficher un mise en page personnalisé pour mes utilisateurs que je cherche à utiliser htmlarea. Un peu comme dans le programme que tu utilises en ce moment pour me réspondre.
Je suis ok pour l'injection sql c comme ça que je fait aussi mais le probléme qui va se poser c'est que le script va bloquer mon insertion si l'utilisateur tape :

augmentation de 1%

Pour moi interdire les caractére spéciaux n'est pas une solution en soit même si j'ai l'impressions que c'est la seule. De la même maniére ton code bloque les scripts javascript mais qu'en est-il des scripts Vb script ou des autres langages par exemple ...

Je ne connait rien en vbscript pourtant ne bloquer qu'un langage me semble une solution plutôt permissive ....

Tout les hommes meurent un jour mais peu d'entre eux vivent vraiment
0
sky_striker Messages postés 41 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 28 octobre 2005
26 janv. 2005 à 14:16
PS: concernant le hachage de login et mot de passe un simple cryptage md5() te prémunie de ce genre de désagréments ... Hélas on peux pas tout le tps utiliser un cryptage ...

Tout les hommes meurent un jour mais peu d'entre eux vivent vraiment
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
26 janv. 2005 à 14:22
Le VBscript est également bloqué, car il commence par <script>



a ++


Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
sky_striker Messages postés 41 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 28 octobre 2005
26 janv. 2005 à 14:28
Salut c vrai pour le <script> désolé ...

Par contre pour l'injection sql c l'unique moyen ? parce que si il existe une caractére que l'on ignore ça va chauffer ...

En tout cas merci de ton aide ...

Tout les hommes meurent un jour mais peu d'entre eux vivent vraiment
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
26 janv. 2005 à 14:53
Le addslashes suffit pour sécuriser les insertions. Les caractères
spéciaux c'est plus si t'as pas envie de te saouler pour la gestion
future lorsque t'affiches un pseudo, que t'as des indices
correspondants au pseudo dans les urls, etc...

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
Rejoignez-nous