IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Nettoyer un string du code HTML


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut [Système] Nettoyer un string du code HTML
    Bonjour à tous,

    Je reçois un string venant d'un flux RSS. Certains champs du RSS contiennent du code HTML et il est possible d'y mettre aussi du javascript même si je n'en ai jamais vu à ce jour. Lorsque j'affiche sur mon site le contenu du RSS, j'utilise donc une fonction de sécurisation de string qui neutralise l'HTML et javascript.

    Evidemment cela à pour conséquence que si un flux utilise de l'HTML en abondance, cela n'est plus lisible vu que les balises HTML sont affichée en clair. De plus pour mon système d'indexation, ça foire tout vu que le code HTML entre alors en compte.

    Donc j'aimerais pouvoir nettoyer un string de tout code HTML pour n'avoir que l'information pertinente.

    Dans un second temps, j'aimerais détecter les liens vers des images mais là je pense que via un regex cela ne devrait pas être trop compliqué quoiqu'avec tous les différents types de fichier images... jpg, png, gif. Une fois cela fait, il faut que je vérifie que l'image est bien une image valide.

    Le problème est que l'HTML peut ne pas être valide. Si quelqu'un désire attaquer mon site en ajoutant un flux contenant un code malicieux... Donc il faut une solution radicale mais trop non plus.

    Si je supprime tout ce qui se trouve entre <*> et <*/> ce serait déja un bon début.

    Donc pour résumer:

    1/ Enlever les balises HTML et Javascript d'un string pour qu'ils n'apparaissent à l'affichage (qui sera tout de même sécurisé)
    2/ Sortir les liens vers des images se trouvant dans un string
    3/ Valider les images (content_type) il me semble


    Merci,

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Pour la suppression des balises HTML, il y a la fonction strip_tags().

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut
    ho le noob que je suis... je pensais que strip_tags ça neutralisait sans les enlever. Merci.

    De plus, il y a la possibilité de striper en ignorant certaines balises.

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Si tu enleves tout le HTMl je vois pas tellement comment tu pourras afficher des images

  5. #5
    Membre chevronné Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Par défaut
    Citation Envoyé par vodnok Voir le message
    ho le noob que je suis... je pensais que strip_tags ça neutralisait sans les enlever. Merci.

    De plus, il y a la possibilité de striper en ignorant certaines balises.
    comme ceci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut
    Effectivement mais je vais probablement retirer toutes les balises y compris les images dans un premier temps.

    Ensuite, je vais filtrer la source pour récupérer éventuellement les images, je vérifie que c'est bien des images via le content-type et je les lies au text dans la bdd. Comme cela je peux indexer les images, m'assurer que c'est effectivement des images et pas du code derrière et je maitrise l'affichage des images.


    Pour vérifier qu'une image est bien une image, le test sur le content-type suffit ? Je voudrais éviter qu'une personne post un lien vers une images qui en fait un point vers un script. Je me souviens que sur Ogame, il était possible via l'image de l'alliance, pour ceux qui connaisse, on pouvait cacher du code et recupérer les cookies.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Nettoyer et indenter le code HTML généré avant envoi page
    Par CUCARACHA dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 07/06/2012, 18h10
  2. Réponses: 6
    Dernier message: 16/07/2010, 14h36
  3. Réponses: 9
    Dernier message: 04/07/2007, 19h27
  4. [string] recherche dans code HTML
    Par zorrax dans le forum Delphi
    Réponses: 4
    Dernier message: 11/12/2006, 16h39
  5. supprimer le code html d'une chaîne String
    Par adrien.nicolet dans le forum Langage
    Réponses: 3
    Dernier message: 04/06/2006, 18h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo