当前位置:   article > 正文

java XML解析防止外部实体注入

将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);
        
    }

 

转载于:https://www.cnblogs.com/songxiaotong/p/6626034.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/612749
推荐阅读
相关标签
  

闽ICP备14008679号