【发布时间】:2017-05-10 18:58:26
【问题描述】:
我正在开发一个支持 SSO SAML 授权/身份验证的项目。上次安全分析表明,我们存在与 XML 外部实体注入攻击相关的安全漏洞。这是代码有问题的部分:
InputStream is = new ByteArrayInputStream(metadata.getBytes());
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder docBuilder;
docBuilder = factory.newDocumentBuilder();
Document doc;
doc = docBuilder.parse(is);
我在互联网上搜索并找到了不同的解决方案,其中一些适用于一般的 XML 文档解析。我还找到了解决方案,即禁用解析器的特定选项(例如扩展外部实体)。但我不知道我的情况是否可以接受这种解决方案。所以我的问题是:解析 SAML 元数据最安全的方法是什么?
谢谢, 拉菲克
【问题讨论】: