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

ASP.NET Discussion :

Code html non désiré dans ma db SQL et affiché dans mon site ASPNET


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 86
    Points : 41
    Points
    41
    Par défaut Code html non désiré dans ma db SQL et affiché dans mon site ASPNET
    Bonjour,

    je suis très embêté par un problème dont j'ignore l'origine.
    J'ai un site internet fait en en ASP.NET (C#) et qui affiche des libellés remplis avec un datareader depuis une base de données SQL Serveur (sur le même serveur).
    Dans la db, je stocke le code HTML que je dois afficher dans les pages de mon site.
    Jusque maintenant, ça a toujours fonctionné super bien, sauf que depuis quelques temps, j'ai des gros soucis dans le contenu de ma DB.
    Chaque ligne de données de ma db, dans presque toutes les tables, y compris les tables de MemberShip d'Aspnet, est suivi de code html non désiré et commence presque toujours par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    </title><style>.ahep{position:absolute;clip:rect(470px,auto,auto,408px);}</style><div class=ahep>States have done discreetly <a href=http://paydayloansforliveq.com >payday loans no credit check</a> struggle as possible.</div>
    Dans ce cas, j'ai fait un petit soft qui tourne tous les jours sur mon serveur pour parcourir les champs de ma db et supprimer tout ce qui commence par "</title><style>.ahep".

    Mais mon gros souci est de savoir d'où ça peut provenir.
    Je suis hébergé chez Soyoustart (OVH), donc en principe déjà protégé contre quelques attaques, j'ai mis un antivirus Symantec depuis bien longtemps et il est à jour.
    Seuls les ports de mon firewall nécessaires à la visite des sites internet sont ouverts.
    Ok, mon serveur SQL est sur la même machine (Windows 2008 R2), mais j'ai plusieurs bases de données avec plusieurs sites, et un seul est "infecté" par ce souci.
    Pensez-vous que ce soit une attaque?

    Comment pourrais-je contrer ça?

    Cette situation est extrêmement gênante étant donné que lorsque je fais tourner mon programme de "nettoyage", il arrive qu'il supprime du bon code, et donc casse l'affichage de mon site.

    Je suis preneur de tout conseil ou aide....

    Merci d'avance

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Difficile de te répondre précisément ! La seule chose dont on peut être sûr c'est qu'il y a au moins une faille sur ton site qui est exploitée par quelqu'un ou par un logiciel. Ca peut aussi être un malware non détecté par ton antivirus... Mais vu que ca insère en base de données, je pencherai plus pour une attaque par injection de code SQL...

    Est-ce que tu as déjà fait un pen test sur ton site ?
    Est-ce que tu utilises des requêtes paramétrées ? (point très important)
    Est-ce que tu es prémunis contre les attaques XSS ?

    Enfin, être chez OVH ou tartampion ne protège pas de tout et loin de là. Si tu as des besoins spécifiques en terme de sécurité, alors tu dois payer pour des services spécifiques, et bien souvent tu dois avoir ta propre architecture serveur chez eux. Ils ne fournissent que le strict minimum par défaut.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 86
    Points : 41
    Points
    41
    Par défaut
    Bonjour et merci pour ton retour.

    Je n'ai jamais fait de tests de pénétration sur mes sites étant donné que je n'ai aucune connaissance là-dedans (connais-tu de bons outils, gratuits ou payants)?
    Pour ce qui est de mes requêtes, oui, ce sont toutes des requêtes paramétrées (sauf le select)
    Et pour ce qui est des attaques XSS, d'après ce que j'en lis sur le site de Microsoft, mon problème semble venir de là.
    Maintenant, comment mettre les bonnes protections en place?

    Et pour ce qui est de mon infra, c'est bien un serveur dédié chez OVH.

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Citation Envoyé par Zebeber Voir le message
    Bonjour et merci pour ton retour.

    Je n'ai jamais fait de tests de pénétration sur mes sites étant donné que je n'ai aucune connaissance là-dedans (connais-tu de bons outils, gratuits ou payants)?
    Pour ce qui est de mes requêtes, oui, ce sont toutes des requêtes paramétrées (sauf le select)
    Et pour ce qui est des attaques XSS, d'après ce que j'en lis sur le site de Microsoft, mon problème semble venir de là.
    Maintenant, comment mettre les bonnes protections en place?

    Et pour ce qui est de mon infra, c'est bien un serveur dédié chez OVH.
    Comment ça tu n'en met pas sur tes select, un select n'empêche pas une injection, après il y a des outils ou des méthodes permettant de vérifier que les données entrées par les utilisateurs soient correct et éviter le xss.
    https://wpl.codeplex.com/

    Tu utilises des composants particulier sur ton site ?
    j'avais intégré un composant de forum sur le mien qui mettait en place des mécanismes de protection contre le xss et les bots, parce que les forums sont des endroits privilégiés pour afficher des pubs.

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Zebeber Voir le message
    Je n'ai jamais fait de tests de pénétration sur mes sites étant donné que je n'ai aucune connaissance là-dedans (connais-tu de bons outils, gratuits ou payants)?
    Des gratuits oui il y en a, mais il faut quand même avoir quelques connaissances pour les utiliser. Le mieux c'est d'en faire réaliser un par un pro. Mais avant d'en arriver là, tu peux déjà renforcer la sécurité de ton site via quelques étapes simples détaillées ci-après.

    Citation Envoyé par Zebeber Voir le message
    Pour ce qui est de mes requêtes, oui, ce sont toutes des requêtes paramétrées (sauf le select)
    Ok c'est déjà un très bon point, mais comme le suggère youtpout98, va plus loin et utilise des paramètres aussi avec les requêtes SELECT.

    Citation Envoyé par Zebeber Voir le message
    Et pour ce qui est des attaques XSS, d'après ce que j'en lis sur le site de Microsoft, mon problème semble venir de là.
    Maintenant, comment mettre les bonnes protections en place?
    Microsoft édite une librairie qui permet de se prémunir : Anti-Cross Site Scripting Library. Voici un exemple d'utilisation : Using AntiXss As The Default Encoder For ASP.NET.

    Ensuite quelques ressources utiles :
    - Design Guidelines for Secure Web Applications
    - Même si ces articles sont vieux, ils restent pertinents :
    --- How To: Protect From Injection Attacks in ASP.NET
    --- How To: Use Regular Expressions to Constrain Input in ASP.NET

    Concernant les QueryStrings, en plus de valider les clés et les valeurs, et en plus d'encoder, il est possible de les crypter. Il est ainsi impossible de les manipuler directement dans la barre d'adresse du navigateur...

    Citation Envoyé par Zebeber Voir le message
    Et pour ce qui est de mon infra, c'est bien un serveur dédié chez OVH.
    L'infra peut être mise en cause s'il y a eu un accès physique au serveur, mais ca ne semble pas être le cas. Déjà commence par blinder ton site avec les info ci-dessus et si ca persiste alors il sera peut être intéressant de regarder de ce côté...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 86
    Points : 41
    Points
    41
    Par défaut
    Bonsoir Youpout978 et DotnetMatt,

    je vous remercie pour vos remarques et vos conseils.
    Je vais m'empresser directement d'appliquer ce qui est applicable dans un délai court afin d'avoir déjà quelques protections supplémentaires, et ensuite, j'approfondirai encore.
    Je n'ai jamais pris le temps de m'intéresser aux attaques de sites web étant donné que ce n'est pas du tout mon activité principale.
    Pour ce qui est des tests de pénétrations, avez-vous quelques pistes vers un outils en particulier?

    Je reviendrai poster le résultat des actions entreprises suite à vos conseils.

    Merci encore et bonne soirée,

  7. #7
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 86
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    je me permets de revenir sur ce sujet.
    J'utilise CKEditor dans certaines de mes pages web (uniquement réservées à quelques personnes pour pouvoir administrer le contenu du site).
    Si je mets en place l'encodeur AntiXss, ça risque de me poser problème non?

  8. #8
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je ne vois pas pourquoi, à la sauvegarde, il suffira d'encoder son contenu, puis pour l'affichage, de le désencoder. Voir du côté de HttpUtility.HtmlEncode et de HttpUtility.HtmlDecode.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  9. #9
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 86
    Points : 41
    Points
    41
    Par défaut
    Merci DotNetMatt,

    à mon avis j'utilise mal ces méthodes.
    Je vais donc approfondir de ce côté là.

    Merci bcp pour vos conseils.
    Maintenant que j'ai une bonne piste, je passe ce topic en résolu.

    Merci encore à tous.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/04/2010, 20h02
  2. Code html non pris en compte dans un ToolTip ?
    Par Hujii dans le forum ASP.NET
    Réponses: 8
    Dernier message: 14/05/2009, 19h59
  3. Parties de code HTML non générées
    Par sovitec dans le forum ASP.NET
    Réponses: 0
    Dernier message: 06/02/2009, 15h05
  4. Code HTML non interprété sous Firefox
    Par vargasvan dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 01/10/2007, 14h46
  5. [XSLT]Formatage de mon html non désiré
    Par Thanos76 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 25/06/2005, 12h16

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