首页 新闻 会员 周边 捐助

关于XML解析存在的安全问题

0
悬赏园豆:100 [已关闭问题] 关闭于 2018-07-05 10:12

微信支付XML外部实体注入漏洞XXE,需要在代码中进行相应的设置。官方提供的是dom4j的一些主流解析xml的解决方法,而我的代码是使用的XmlPullParser解析的,不知道该如何设置?

private Map<String, String> doXMLParse(String xml) throws XmlPullParserException, IOException {

        InputStream inputStream = new ByteArrayInputStream(xml.getBytes());

        Map<String, String> map = null;

        XmlPullParser pullParser = XmlPullParserFactory.newInstance().newPullParser();

        pullParser.setInput(inputStream, "UTF-8"); // 为xml设置要解析的xml数据

        int eventType = pullParser.getEventType();

        while (eventType != XmlPullParser.END_DOCUMENT) {
            switch (eventType) {
                case XmlPullParser.START_DOCUMENT:
                    map = new HashMap<String, String>();
                    break;

                case XmlPullParser.START_TAG:
                    String key = pullParser.getName();
                    if (key.equals("xml"))
                        break;

                    String value = pullParser.nextText();
                    map.put(key, value);

                    break;

                case XmlPullParser.END_TAG:
                    break;

            }

            eventType = pullParser.next();

        }

        return map;
    }
土生搞IT的主页 土生搞IT | 初学一级 | 园豆:18
提问于:2018-07-05 09:47
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册