不要使用 WebLogic Servlet 屬性進行 XML 剖析

此規則會偵測是否使用 WebLogic setAttribute 和 getAttribute 屬性來剖析 XML。 此規則會偵測 Java 程式碼。 個別規則會偵測是否使用啟用了此特性的 WebLogic weblogic.servlet.XMLParsingHelper

會偵測到下列情況:
  1. 的所有方法呼叫 setAttribute ,其中第一個引數是具有下列任何值的字串文字:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  2. 的所有方法呼叫 setAttribute ,其中第一個引數是字串變數或字串欄位的參照,且該變數或欄位已起始設定為下列任何值:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  3. 的所有方法呼叫 getAttribute ,其中引數是具有下列任何值的字串文字:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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

  4. 的所有方法呼叫 getAttribute ,其中引數是字串變數或字串欄位的參照,且該變數或欄位已起始設定為下列任何值:
    • org.xml.sax.helpers.DefaultHandler
    • org.xml.sax.HandlerBase
    • org.w3c.dom.Document

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


.根據 程式碼的結構,自動修復將提供下列任何選項:
  1. 刪除方法呼叫。

    範例:
       request.setAttribute("org.xml.sax.helpers.DefaultHandler", myHandler);
       request.getAttribute("org.w3c.dom.Document");
    當自動修正套用到之前的行時,這些行會被刪除。
    附註: 請驗證物件、 myHandler 如果稍後在程式碼內使用,則會以其他方式來起始設定。

  2. 刪除變數起始設定程式區段。

    範例:
       Document myDocument = request.getAttribute("org.w3c.dom.Document");
    當應用自動修正時,之前的程式碼會變更為:
       Document myDocument;
    附註: 請驗證物件、 myDocument 如果稍後在程式碼內使用,則會以其他方式來起始設定。