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 :

Problème pour enlever les tags javascript d'une source HTML


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème pour enlever les tags javascript d'une source HTML
    Bonjour à toute la communauté

    Je viens quemander une petite aide car ce problème commence à m'énerver (quelques heures de perdues cet après-midi).

    Je souhaiterais enlever toutes les balises javascript (et leur contenu) sur une source html distante que j'aspire avec une fonction fopen.

    Voici le code que j'ai et qui ne marche pas:

    $ligne = eregi_replace('`^<script(.+)</script>{1}$`','',$ligne);

    Merci de m'aider, j'ai cherché sur de nombreux sites et tutorials consacrés aux regex mais là je bloque

    Bonne soirée

    YANN
    Yann - Webmaster

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ligne = 'azerty ezfze<script language="javascript">jirge ;</script>rg rt';
    echo htmlentities(preg_replace('#(?:<script)(?:.+)>(.*?)(?:</script>)#', '\\1', $ligne));
    Si tu ancres avec ^ et $, tu ne remplaceras jamais tout :/
    Sinon, ton {1} ne s'applique qu'au signe de fin de tag, à savoir ">".
    Enfin, il faut utiliser les parenthèses non capturantes dans ton cas : (?:)

  3. #3
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    J'ai le même problème. Je ne sais pas pourquoi tu fait ça mais as tu pensé aussi au évenement javascript du style onload, onclick, etc... ?

    Moi j'ai choisi la solution de traiter le problème avec la librairie DOMXML.

  4. #4
    Membre actif Avatar de AlphaYoDa
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Points : 210
    Points
    210
    Par défaut
    j'ai eu ce problème très récemment, j'ai utilisé : http://pixel-apes.com/safehtml

    ce qui me dérange un peu c'est qu'il essaie aussi de régler les problèmes de synthaxe : exemple : si un <p> n'est pas fermé, il rajoutera la fermeture </p>

    Mais il efface très bien le contenu *dangereux*, ce n'est pas que les balises scripts si c'est uniquement ça que tu cherches.


  5. #5
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Le problème c'est qu'il efface tout ce qui peux contenir du danger et pas seulement ce qui contient du danger.

    Par exemple il supprime les balise html, head, body alors que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <html>
    <head></head>
    <body>
    </body>
    </html>
    n'est pas un code très dangereux...

    P:S: AlphaYoDa, tiens nous au courant quand il t'auront répondu sur le "clean up"...

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/04/2011, 19h13
  2. [RegEx] Ciblé les blocs Javascript dans une page HTML
    Par budhax dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2010, 15h24
  3. Problème pour trouver les données commune dans une requête
    Par Winterrage dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/02/2008, 10h14
  4. problème pour enlevé les jours fériés
    Par titi67 dans le forum Général VBA
    Réponses: 2
    Dernier message: 12/05/2007, 11h44
  5. Réponses: 1
    Dernier message: 07/06/2006, 18h56

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