No utilizar los atributos de servlet de WebLogic para el análisis XML

Esta regla detecta el uso de los atributos setAttribute y getAttribute de WebLogic para analizar XML. Esta regla detecta el código Java. Una regla aparte detecta el uso de WebLogic weblogic.servlet.XMLParsingHelper, que habilita esta característica.

Se han detectado los siguientes casos:
  1. Todas las invocaciones de método de setAttribute, donde el primer argumento es un literal de serie con uno de los siguientes valores:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  2. Todas las invocaciones de método de setAttribute, donde el primer argumento es una referencia a una variable de serie o un campo de serie, y la variable o el campo se inicializa con uno de los siguientes valores:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  3. Todas las invocaciones de método de getAttribute, donde el argumento es un literal de serie con uno de los siguientes valores:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  4. Todas las invocaciones de método de getAttribute, donde el argumento es una referencia a una variable de serie o un campo de serie, y la variable o el campo se inicializa con uno de los siguientes valores:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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


Un arreglo rápido para esta regla está disponible en el explorador de orígenes. Dependiendo de cómo se haya estructurado el código, el arreglo rápido ofrece una de las siguientes opciones:
  1. Suprimir la llamada de método.

    Ejemplos:
      request.setAttribute("org.xml.sax.helpers.DefaultHandler", myHandler);
      request.getAttribute("org.w3c.dom.Document");
    Cuando se aplica el arreglo rápido a las líneas anteriores, se suprimen.
    Nota: compruebe que el objeto, myHandler, se inicialice de otras formas si se utiliza en el código posteriormente.

  2. Suprimir la sección del inicializador de variables.

    Ejemplos:
      Document myDocument = request.getAttribute("org.w3c.dom.Document");
    Cuando se aplica el arreglo rápido, el código anterior cambia a:
      Document myDocument;
    Nota: compruebe que el objeto, myDocument, se inicialice de otras formas si se utiliza en el código posteriormente.