Nu utilizaţi atributele de servlet WebLogic pentru parsarea XML

Această regulă detectează utilizarea atributelor WebLogic setAttribute şi getAttribute pentru parsarea XML. Această regulă detectează codul Java. O regulă separată detectează utilizarea WebLogic weblogic.servlet.XMLParsingHelper, care activează această caracteristică.

Următoarele cazuri sunt detectate:
  1. Toate invocările de metodă setAttribute, unde primul argument este un literal String cu oricare din următoarele valori:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  2. Toate invocările de metodă setAttribute, unde primul argument este o referinţă la o variabilă şir sau un câmp şir, iar variabila sau câmpul sunt iniţializate la oricare din valorile următoare:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  3. Toate invocările de metodă getAttribute, unde argumentul este un literal String cu oricare din următoarele valori:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  4. Toate invocările de metodă getAttribute, unde argumentul este o referinţă la o variabilă şir sau un câmp şir, iar variabila sau câmpul sunt iniţializate la oricare din valorile următoare:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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


O corecţie rapidă pentru această regulă este disponibilă în scanerul de sursă. În funcţie de modul în care este structurat codul, corecţia rapidă oferă oricare din următoarele opţiuni:
  1. Ştergeţi apelul la metodă.

    Exemple:
      request.setAttribute("org.xml.sax.helpers.DefaultHandler", myHandler);
      request.getAttribute("org.w3c.dom.Document");
    Când este aplicată corecţia rapidă la liniile anterioare, aceste linii sunt şterse.
    Notă: Verificaţi că obiectul myHandler, este iniţializat în alte moduri dacă acesta este folosit mai târziu în cod.

  2. Ştergeţi secţiunea de iniţializator variabilă.

    Exemple:
      Document myDocument = request.getAttribute("org.w3c.dom.Document");
    Când este aplicată corecţia rapidă, codul anterior este convertit la:
      Document myDocument;
    Notă: Verificaţi că obiectul myDocument, este iniţializat în alte moduri dacă acesta este folosit mai târziu în cod.