繁体   English   中英

解决使用SAX解析器解析xml的安全问题

[英]Solve security issue parsing xml using SAX parser

我有一个Android应用程序,用户可以在其中输入任何xml源URL进行解析。 然后我的应用程序解析xml(如果有效)并显示结果。

问题是, 如果用户输入不受信任的xml源URL ,则可能会影响应用和/或设备。

识别风险和防止利用最佳方法是什么?

根据我的研究,我发现启用FEATURE_SECURE_PROCESSING并禁用扩展可能会有所帮助。 但任何人都可以告诉我它是什么,我如何实现它。

谢谢。

经过研究,我找到了这个。 我希望这能解决我的问题。

启用FEATURE_SECURE_PROCESSING

SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);

禁用DTD

spf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • 对于SAXDOM解析器,dcanh121指出,禁用DTD就足够了。

    factory.setFeature(“http://apache.org/xml/features/disallow-doctype-decl”,true);

  • 对于StAX解析器:

    factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES,false);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM