Ne pas utiliser les attributs de servlet de WebLogic pour l'analyse syntaxique du code XML

Cette règle détecte l'utilisation des attributs WebLogic setAttribute et getAttribute pour l'analyse syntaxique du code XML. Cette règle détecte le code Java. Il existe une règle distincte pour détecter l'utilisation de l'objet WebLogic weblogic.servlet.XMLParsingHelper qui active cette fonctionnalité.

Les cas suivants sont détectés :
  1. Tous les appels de méthode de setAttribute où le premier argument est un littéral chaîne avec l'une des valeurs suivantes:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

    Exemple :
    request.setAttribute("org.xml.sax.helpers.DefaultHandler", someObject)

  2. Tous les appels de méthode de setAttribute , où le premier argument est une référence à une variable de chaîne ou à une zone de chaîne et où cette variable ou cette zone est initialisée avec l'une des valeurs suivantes:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

    Exemple :
       String handler = "org.xml.sax.helpers.DefaultHandler";
       request.setAttribute(handler, someObject);

  3. Tous les appels de méthode de getAttribute , où l'argument est un littéral chaîne avec l'une des valeurs suivantes:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

    Exemple : Document myDocument = request.getAttribute("org.w3c.dom.Document")

  4. Tous les appels de méthode de getAttribute , où l'argument est une référence à une variable de chaîne ou à une zone de chaîne et où cette variable ou cette zone est initialisée avec l'une des valeurs suivantes:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

    Exemple :
       String handler = "org.w3c.dom.Document";
       Document myDoc = request.getAttribute(handler);


. En fonction de la structure du code, le correctif automatisé offrira l'une des options suivantes la façon dont le code est structuré, la correction automatisée proposera l'une des options suivantes :
  1. Supprime l'appel de méthode.

    Exemples :
       request.setAttribute("org.xml.sax.helpers.DefaultHandler", myHandler);
       request.getAttribute("org.w3c.dom.Document");
    Lorsque la correction automatisée est appliquée aux lignes précédentes, celles-ci sont supprimées.
    Remarque: Vérifiez que l'objet, myHandler , est initialisé d'une autre manière s'il est utilisé dans le code ultérieurement.

  2. Supprime la section de l'initialiseur de la variable.

    Exemples :
       Document myDocument = request.getAttribute("org.w3c.dom.Document");
    Lorsque le correctif automatisé est appliqué, le code précédent est remplacé par le code suivant :
       Document myDocument;
    Remarque: Vérifiez que l'objet, myDocument , est initialisé d'une autre manière s'il est utilisé dans le code ultérieurement.