Php dans formulaire
Résolu/Fermé
powpowland
Messages postés
395
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
2 mars 2022
-
4 mai 2010 à 16:30
powpowland Messages postés 395 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 2 mars 2022 - 4 mai 2010 à 18:48
powpowland Messages postés 395 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 2 mars 2022 - 4 mai 2010 à 18:48
A voir également:
- Php dans formulaire
- Easy php - Télécharger - Divers Web & Internet
- Formulaire de réclamation facebook - Guide
- Php natif - Forum PHP
- Formulaire remboursement frais de résiliation free pdf ✓ - Forum Vos droits sur internet
- Récupérer compte hotmail sans formulaire ✓ - Forum Hotmail / Outlook.com
4 réponses
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
4 mai 2010 à 17:15
4 mai 2010 à 17:15
Salut,
c'est une bonne remarque que tu t'es faite là ;) Il s'agit d'un des nombreux problèmes de sécurité liés aux formulaires.
C'est ce qu'on appelle une injection de code. L'utilisateur malveillant peut, par exemple, insérer du JavaScript ou du code HTML imprévu, ou du code PHP dans ton cas. Attention également aux injections SQL.
Pour être rigoureux, il faudrait que tu adoptes une « stratégie » d'utilisation de ta base de données, que tu la notes quelque part et que tu la respectes pour tous les scripts qui utilisent ta base. Par exemple, décider que toutes les données doivent être nettoyées avant d'être insérées.
La fonction strip_tags (https://www.php.net/manual/fr/function.strip-tags.php ) est là pour te simplifier la vie : elle retire tout ce qui peut être dangereux, et tu peux choisir de garder certains éléments. Si tu n'es pas à l'aise avec la documentation de Php.net, n'hésite pas à me poser des questions, ce site est une mine d'or quand on sait s'en servir.
En ce qui concerne ton erreur avec preg_replace, c'est normal (https://www.php.net/manual/fr/function.preg-replace.php ) : cette fonction cherche à interpréter le code PHP contenu dans ton $desc, et il doit y avoir des erreurs dedans (genre il n'aime pas quand la balise ?php est vide).
J'espère t'avoir aidé ;)
c'est une bonne remarque que tu t'es faite là ;) Il s'agit d'un des nombreux problèmes de sécurité liés aux formulaires.
C'est ce qu'on appelle une injection de code. L'utilisateur malveillant peut, par exemple, insérer du JavaScript ou du code HTML imprévu, ou du code PHP dans ton cas. Attention également aux injections SQL.
Pour être rigoureux, il faudrait que tu adoptes une « stratégie » d'utilisation de ta base de données, que tu la notes quelque part et que tu la respectes pour tous les scripts qui utilisent ta base. Par exemple, décider que toutes les données doivent être nettoyées avant d'être insérées.
La fonction strip_tags (https://www.php.net/manual/fr/function.strip-tags.php ) est là pour te simplifier la vie : elle retire tout ce qui peut être dangereux, et tu peux choisir de garder certains éléments. Si tu n'es pas à l'aise avec la documentation de Php.net, n'hésite pas à me poser des questions, ce site est une mine d'or quand on sait s'en servir.
En ce qui concerne ton erreur avec preg_replace, c'est normal (https://www.php.net/manual/fr/function.preg-replace.php ) : cette fonction cherche à interpréter le code PHP contenu dans ton $desc, et il doit y avoir des erreurs dedans (genre il n'aime pas quand la balise ?php est vide).
J'espère t'avoir aidé ;)
powpowland
Messages postés
395
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
2 mars 2022
20
4 mai 2010 à 17:19
4 mai 2010 à 17:19
ok merci j'essayerai ça...
par contre pour le preg_replace, quand je met juste 'php' au lieu de '?php' ça marche... donc je sais pas...
par contre pour le preg_replace, quand je met juste 'php' au lieu de '?php' ça marche... donc je sais pas...
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
4 mai 2010 à 17:38
4 mai 2010 à 17:38
Ah oui je sais : c'est parce que dans une expression régulière il faut échapper les slashes avec un deuxième slash.
$desc = preg_replace('#\\?php#', '', $desc);D'où le message « nothing to repeat » : le point d'interrogation n'était pas échappé en fait...
powpowland
Messages postés
395
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
2 mars 2022
20
4 mai 2010 à 18:48
4 mai 2010 à 18:48
c'est le \\ marche... nickel merci