请勿将 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 ,以其他方式初始化 (如果稍后在代码中使用)。