|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | |||
![]() ![]() |
Bonjour,
Citation:
(merci stealth35)Je protège la récupération de mes données issues d'un formulaire : Code :
- Sanitize filters - filter_input Mais je n'ai pas trouvé de solution contre les failles xss pour un textarea, qui, par définition, doit pouvoir enregistrer et afficher des balises html. D'après ce que j'ai lu ("parcouru" serait plus juste) ici, là, ou là, ... les hack xss "basiques" sont surtout de la forme : - <script>alert("on t'a eu !")</script> - <iframe src="http://site-du-hacker.com"></iframe> -> "Comment s'en protéger au mieux ? Une 1ère approche serait de supprimer toutes les balises <script> et <iframe> (et leur contenu) avec des regex, ou dom (?) -> "Sera-ce suffisant ?" -> "Quelle est la bonne méthode ?" Merci.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
tu mets un htmlspecialchar() à l'affichage et ça suffit. souvent tu ne dois pas interpreter le code saisi à l'interieur du textarea... ... sinon:
un peu de tidy pour nettoyer le code html saisi (parce que sinon ya des spécialiste dans le piégeage de la fonction strip_tag ) un peu de dom pour interdire les balises scripts au fait pour moi utiliser mysql_real_escape_string() sans expliciter le "link" vers la ressource SQL m'a toujours semblé une mauvaise idée... c'est pas tout le temps faux... mais bon.. et puis pdo... et patati... et patata... je suis un grand fan des sanitizes... mais bon ça va t'enlever les caractères non ascii uniquement...
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#3 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Empêcher l'insertion de balises iframe et script me paraît suffisant.
Tu peux le faire avec strip_tags en passant un tableau des tags autorisés.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
10
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
si tu veux garder la mise en forme html, fait simplement un strip_tags et garde les balises souhaité (<a> <p> <br> ...),
ps : je te déconseille de faire un stripslashes, désactive plutôt les magic_quote, etl e htmlspecialschars doit se faire uniquement a l'affichage, ta base doit être intacte
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 | ||||||
![]() ![]() |
Me revoilà ...
Le coupable : Code :
Code :
(dommage qu'il n'y ait pas une version "balises-a-supprimer") -> Il reste la piste : "supprimer les balises <script> et <iframe>" ... Je n'y connais rien en DOM ... ![]() J'ai bien vu ca DOMDocument::getElementsByTagName ou DOMDocument::getElementsByTagNameNS (mais comment les utiliser ?) -> je vais étudier le code de stealth35 ici ... Quelqu'un a la solution avec DOM ? Avant que je m'essaie aux regex (ce n'est pas gagné non plus !), et qu'on me tape sur les doigts ... Le but est d'obtenir : Code :
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||||||
|
|
00
|
|
|
#6 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
comme ça:
Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#7 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
y'a pas non plus énormément de balises (pour la liste c'est bien ce que tu fait avec la surpression de caractères accentués), je me contentais de ça (a rajouter/enlever si besoin:
Code :
$tags = '<a><strong><small><span><blockquote><cite><code><dd><dt><dl><div><p><em><pre><h1><h2><h3><h4><h5><h6><img><ul><ol><li><table><th><td><tr>';
__________________
http://blog.stealth35.com/ |
|
|
10
|
|
|
#8 |
![]() ![]() |
@stealth35,
[Edit] remarque stupide de ma part ... il suffit de mettre ca dans une fonction pour simplifier la mise à jour
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#9 |
![]() ![]() |
J'ai un petit soucis : mon site "demo" est sur ... free.fr ! -> PHP Version 4.4.3-dev
![]() Il faudrait que j'utilise aussi DOM XML (PHP 4) ... ou que je puisse tester la version de php et switcher entre DOM et DOM XML (?) Ca se complique ...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#10 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
Citation:
.htaccess : php 1
__________________
http://blog.stealth35.com/ |
|
|
|
10
|
|
|
#11 | ||
![]() ![]() |
Bon. en regex, ca donne ca : "supprimer les balises <script> et <iframe>"
Code :
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
00
|
|
|
#12 | ||
![]() ![]() |
![]() Donc, voici la version DOM : Code :
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Inscription : mars 2005 Messages : 82 ![]() |
Salut jreaux62,
étant dans la même situation que toi, je me suis tourné vers tes REGEX. Le 1er (<script>) marche impec. Le 2ème (<iframe>) semble ne pas marcher chez moi ; Quand à la méthode DOM (jamais entendu parler de ce truc avant EDIT : finalement, en testant plusieurs formes d'iframe, toutes sont bloquées ! En fait, la difficulté sur cette balise vient du fait qu'elle peut prendre pleins de formes différentes, ce qui complique bien le truc |
|
|
00
|
|
|
#14 |
![]() ![]() |
Bonjour,
j'attends vos retours sur les fonctions : avec regex, ou avec dom. Après avoir testé les 2 : - avec regex : semble bien fonctionner, avec php4 ou php5 - avec dom : semble bien fonctionner, SAUF quand il y a des entités html (é, è, ...) -> messages d'erreur Pour l'instant, ma préférence va aux regex ... ps : il me semble IMPORTANT de rappeler que ce ne sont pas des protection à 100% contre les failles xss ! Ces fonctions ne suppriment QUE les balises <script> et <iframe> (et leur contenu).
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#15 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
donc ce te dérange pas d'avoir des balises <html> ou <body> dans ton texte, et briser la validation de ta page ? pourquoi ne pas retenir strips_tags c'est le plus simple a comprendre et a utiliser ...
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#16 |
![]() ![]() |
euuh, j'avais pas pensé à ca ! ...
+1 pour strip_tags Et toi, stealth35, tu fais comment ? strip_tags ? avec ce que tu as indiqué plus haut ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#17 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
Citation:
allé je t'ai mis une autre faille pour la route y'a risque de CSRF
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#18 | |
![]() ![]() |
Citation:
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
|
00
|
|
|
#19 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
t’inquiètes pas après c'est des automatismes c'est comme faire du code HTML valide
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#20 | ||
![]() ![]() |
C'est vrai que jusqu'à présent, je n'avais jamais été confronté directement à ce problème.
... alors qu'on trouve des textarea dans tous les formulaires ! Bon. Du coup ... Code :
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com