Nie używaj atrybutów serwletu serwera WebLogic do analizowania kodu XML

Ta reguła wykrywa użycie atrybutów setAttribute i getAttribute serwera WebLogic na potrzeby analizowania kodu XML. Ta reguła wykrywa kod Java. Oddzielna reguła wykrywa użycie klasy WebLogic weblogic.servlet.XMLParsingHelper, która udostępnia tę funkcję.

Wykrywane są następujące przypadki:
  1. Wszystkie wywołania metod setAttribute , gdzie pierwszy argument jest literałem łańcuchowym z jedną z następujących wartości:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

    Przykład:
    request.setAttribute("org.xml.sax.helpers.DefaultHandler", someObject)

  2. Wszystkie wywołania metod setAttribute , gdzie pierwszy argument jest odwołaniem do zmiennej łańcuchowej lub pola łańcuchowego, a ta zmienna lub pole jest inicjowane z jedną z następujących wartości:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  3. Wszystkie wywołania metod getAttribute , gdzie argument jest literałem łańcuchowym z dowolną z następujących wartości:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

    Przykład: Document myDocument = request.getAttribute("org.w3c.dom.Document")

  4. Wszystkie wywołania metod getAttribute , gdzie argument jest odwołaniem do zmiennej łańcuchowej lub pola łańcuchowego, a ta zmienna lub pole jest inicjowane z jedną z następujących wartości:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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


. W zależności od struktury kodu, automatyczna poprawka zaoferuje jedną z poniższych opcji:
  1. Usunięcie wywołania metody.

    Przykłady:
       request.setAttribute("org.xml.sax.helpers.DefaultHandler", myHandler);
       request.getAttribute("org.w3c.dom.Document");
    Gdy automatyczna poprawka zostanie zastosowana do poprzednich linii, zostaną one usunięte.
    Uwaga: Sprawdź, czy obiekt myHandler jest inicjowany w inny sposób, jeśli zostanie użyty później w kodzie.

  2. Usunięcie sekcji inicjatora zmiennej.

    Przykłady:
       Document myDocument = request.getAttribute("org.w3c.dom.Document");
    Po zastosowaniu automatycznej poprawki poprzedni kod zostanie zmieniony na:
       Document myDocument;
    Uwaga: Sprawdź, czy obiekt myDocument jest inicjowany w inny sposób, jeśli zostanie użyty później w kodzie.