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);


Un correctif rapide pour cette règle est disponible dans le scanner de source. Selon la manière dont le code est structuré, le correctif rapide agit comme suit :
  1. Supprime l'appel de méthode.

    Exemples :
       request.setAttribute("org.xml.sax.helpers.DefaultHandler", myHandler);
       request.getAttribute("org.w3c.dom.Document");
    Si le correctif rapide est appliqué aux lignes précédentes, ces lignes 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");
    Une fois le correctif rapide appliqué, le code devient :
       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.