Non utilizzare gli attributi del servlet WebLogic per l'analisi XML

Questa regola rileva l'utilizzo degli attributi WebLogic setAttribute e getAttribute per l'analisi XML. Questa regola rileva il codice Java. Una regola separata rileva l'utilizzo di WebLogic weblogic.servlet.XMLParsingHelper, che abilita questa funzione.

Vengono rilevati i seguenti casi:
  1. Tutti i richiami di metodo di setAttribute , dove il primo argomento è una stringa letterale con uno dei seguenti valori:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  2. Tutti i richiami di metodo di setAttribute , dove il primo argomento è un riferimento a una variabile stringa o a un campo stringa e tale variabile o campo viene inizializzato su uno dei seguenti valori:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  3. Tutti i richiami di metodo di getAttribute , dove l'argomento è una stringa letterale con uno dei seguenti valori:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  4. Tutti i richiami di metodo di getAttribute , dove l'argomento è un riferimento a una variabile stringa o a un campo stringa e tale variabile o campo viene inizializzato su uno dei seguenti valori:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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


. A seconda della a seconda di come è strutturato il codice, la correzione automatica offrirà una delle seguenti opzioni:
  1. Eliminare la chiamata al metodo.

    Esempi:
       request.setAttribute("org.xml.sax.helpers.DefaultHandler", myHandler);
       request.getAttribute("org.w3c.dom.Document");
    Quando la correzione automatica viene applicata alle righe precedenti, queste vengono eliminate.
    Nota: verificare che l'oggetto, myHandler , viene inizializzato in altri modi se viene utilizzato successivamente all'interno del codice.

  2. Eliminare la sezione dell'inizializzatore della variabile.

    Esempi:
       Document myDocument = request.getAttribute("org.w3c.dom.Document");
    Quando viene applicata la correzione automatica, il codice precedente viene modificato in:
       Document myDocument;
    Nota: verificare che l'oggetto, myDocument , viene inizializzato in altri modi se viene utilizzato successivamente all'interno del codice.