1

我正在尝试保护 .NET Web 服务免受XXE攻击。因为底层的 SOAP 消息是 XML,它有潜在的风险。

可以在此处此处找到一种禁止对 XML 文档进行 DTD 处理的方法。但是,SOAP 消息的 XML 解析是由框架完成的。

如何修改 XML 阅读器的设置以关闭 DTD 处理?

我还寻找了一个直接访问 XML 内容的钩子,但在WebService的文档中没有找到合适的东西。

4

1 回答 1

1

我做了一些测试,表明 ASP.NET Web 服务可以防止 XXE 攻击。默认情况下,该框架似乎关闭了 DTD 处理。

我使用Soap UI进行测试。只需添加一个 DOCTYPE 定义,例如

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root[ 
<!ENTITY laugh "hahahahaha">
]>

导致错误的请求错误(HTTP 状态 400)。

为了确保不只是弄乱了 SOAP 消息,我还单独验证了 XML 内容。

于 2016-12-16T09:47:21.780 回答