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 setAttribute dans lesquels le premier argument est un littéral chaîne possédant 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 setAttribute dans lesquels le premier argument est une référence à une variable de chaîne ou une zone de chaîne et où la variable ou la 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 getAttribute dans lesquels l'argument est un littéral chaîne possédant 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 getAttribute dans lesquels l'argument est une référence à une variable de chaîne ou une zone de chaîne et où la variable ou la 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 réutilisé dans la suite du code.

  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 réutilisé dans la suite du code.