java XML解析防止外部實體注入


  /** 
     * 增加防止部實體注入邏輯
     * <功能詳細描述>
     * @param reader
     * @throws SAXException
     * @see [類、類#方法、類#成員]
     */
    public static void setReaderFeature(SAXReader reader)
        throws SAXException
    {
        
        reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
        
        reader.setFeature("http://javax.xml.XMLConstants/feature/secure-processing", true);
        
        // 是否包含外部生成的實體。當正在解析文檔時為只讀屬性,未解析文檔的狀態下為讀寫。
        reader.setFeature("http://xml.org/sax/features/external-general-entities", false);
        
        // 是否包含外部的參數,包括外部DTD子集。當正在解析文檔時為只讀屬性,未解析文檔的狀態下為讀寫。
        reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
        
        reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
        
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM