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 metody setAttribute, w których pierwszym argumentem jest literał łańcuchowy o jednej 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 metody setAttribute, w których pierwszy argument jest odwołaniem do zmiennej łańcuchowej lub pola łańcuchowego i w których ta zmienna lub to pole są 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 metody getAttribute, w których argumentem jest literał łańcuchowy o jednej 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 metody getAttribute, w których argument jest odwołaniem do zmiennej łańcuchowej lub pola łańcuchowego i w których ta zmienna lub to pole są 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);


Szybka poprawka dla tej reguły jest dostępna w skanerze źródła. W zależności od struktury kodu, szybka poprawka udostępnia jedną z następujących opcji:
  1. Usunięcie wywołania metody.

    Przykłady:
      request.setAttribute("org.xml.sax.helpers.DefaultHandler", myHandler);
      request.getAttribute("org.w3c.dom.Document");
    Po zastosowaniu szybkiej poprawki do powyższych wierszy zostaną one usunięte.
    Uwaga: Należy sprawdzić, czy obiekt myHandler jest inicjowany w inny sposób, jeśli jest on używany w dalszej części kodu.

  2. Usunięcie sekcji inicjatora zmiennej.

    Przykłady:
      Document myDocument = request.getAttribute("org.w3c.dom.Document");
    Po zastosowaniu szybkiej poprawki powyższy kod zostanie zamieniony na następujący:
      Document myDocument;
    Uwaga: Należy sprawdzić, czy obiekt myDocument jest inicjowany w inny sposób, jeśli jest on używany w dalszej części kodu.