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

C# Discussion :

Suppression des balises script


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut Suppression des balises script
    Bonjour, afin de supprimé du contenu potentiellement dangereux d'un code source, je souhaite supprimer tout ce qui se trouve entre "<script" et "</script>" d'une string nommée sHtml, j'utilise pour cela les regex c# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sHtml = System.Text.RegularExpressions.Regex.Replace(sHtml,"<script([^\"].*?)<script>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
    Et maintenant, mon problème :
    si j'ai un texte <script>rftyhtrertyt</script> ca fonctionne nikel !!
    mais si j'ai :
    <script>reerer
    erererer
    ere</script>
    ça ne fonctionne pas, le saut de ligne fait échouer ma regex, peux etre est elle mal construit, je ne suis vraiement pas doué en regex.


    Par avance merci

  2. #2
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    petit indice sur cette page : http://msdn.microsoft.com/fr-fr/libr...exoptions.aspx

    => membre "Multiline"

  3. #3
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    Merci pour la réponse rapide, j'ai déjà malheureusement testé cette option et je pense qu'elle ne me correspond pas, je dirais même qu'elle fais l'inverse.
    Il est dit dans le définition du MSDN que l'option multiline permet de faire commencer et finir l'expression en début et fin de ligne et non de bloc. Ce qui ne correspond pas a ce que je veux.


    D'autres idée ?? Merci

  4. #4
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Oups pardon, réponse trop rapide. .. Il faut que tu utilises Singleline plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sHtml = System.Text.RegularExpressions.Regex.Replace(sHtml, "<script>([^\"].*?)</script>", string.Empty, System.Text.RegularExpressions.RegexOptions.Singleline);

  5. #5
    Membre éclairé
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par défaut
    Et dire que je suis passé à coté ....


    Merci beaucoup en tout cas !


    Oups, j'ai parlé trop vite, effectivement ça fonctionne mais ça me met tout sur une ligne, ce que je ne désire pas (pas pratique pour relire le code)

    En fait, j'avais fais une solution de ce genre avec sHtml.replace("\n","") ca me retournais le même résultat que singleLine.

    Y a t'il une autre solution ?

  6. #6
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Citation Envoyé par jmjmjm Voir le message
    Oups, j'ai parlé trop vite, effectivement ça fonctionne mais ça me met tout sur une ligne, ce que je ne désire pas (pas pratique pour relire le code)
    étrange, ça fonctionne très bien chez moi avec la ligne de code que je t'ai donnée...

    Voici mon prog de test si ça peut t'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    class Program
    {
        static void Main(string[] args)
        {
            //Création "page web" avec script
            string sHtml = "<html>" + Environment.NewLine;
            sHtml += "   <head>" + Environment.NewLine;
            sHtml += "       <title>WebSite</title>" + Environment.NewLine;
            sHtml += "       <script>" + Environment.NewLine;
            sHtml += "            $(function() {" + Environment.NewLine;
            sHtml += "               /*someCode*/" + Environment.NewLine;
            sHtml += "           })" + Environment.NewLine;
            sHtml += "       </script>" + Environment.NewLine;
            sHtml += "   </head>" + Environment.NewLine;
            sHtml += "   <body>" + Environment.NewLine;
            sHtml += "       Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna.<br/>" + Environment.NewLine;
            sHtml += "       Nunc viverra imperdiet enim. Fusce est. Vivamus a tellus.<br/>" + Environment.NewLine;
            sHtml += "       Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin pharetra nonummy pede. Mauris et orci.<br/>" + Environment.NewLine;
            sHtml += "   </body>" + Environment.NewLine;
            sHtml += "</html>" + Environment.NewLine;
     
            //Affichage page web originale
            Console.Out.WriteLine(sHtml);
     
            sHtml = System.Text.RegularExpressions.Regex.Replace(sHtml, "<script>([^\"].*?)</script>", string.Empty, System.Text.RegularExpressions.RegexOptions.Singleline);
     
            //Affichage page web originale
            Console.Out.WriteLine("---------------"); 
            Console.Out.WriteLine(sHtml);
        }
    }

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

Discussions similaires

  1. suppression des balises en cas de probleme de parse
    Par ensisoft dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/05/2009, 19h24
  2. Syntaxe des balises script
    Par zarzar4 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 01/09/2008, 16h36
  3. récupérer le contenu des balise <script>
    Par GoldenEyes dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/06/2008, 13h08
  4. [Prototype] Texte chargé dans une <div> contenant des balises <script>
    Par wenijah dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 22/11/2007, 17h28
  5. Réponses: 2
    Dernier message: 27/02/2007, 09h16

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