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 del metodo di setAttribute, dove il primo argomento è un letterale stringa 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 del metodo di setAttribute, dove il primo argomento è un riferimento ad una variabile stringa o un campo stringa e tale variabile o campo è 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 del metodo di getAttribute, dove l'argomento è un letterale stringa 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 del metodo di getAttribute, dove l'argomento è un riferimento ad una variabile stringa o ad un campo stringa e tale variabile o campo è 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);


Nello scanner di origine è disponibile una correzione rapida per questa regola. In base al modo in cui è strutturato il codice, la correzione rapida offre 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 rapida è applicata alle righe precedenti, tali righe vengono eliminate.
    Nota: Verificare che l'oggetto myHandler, sia 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 rapida, il codice precedente viene modificato in:
      Document myDocument;
    Nota: Verificare che l'oggetto myDocument, sia inizializzato in altri modi se utilizzato successivamente all'interno del codice.