Asp.net 如何保护.NET Web服务免受XXE攻击?

Asp.net 如何保护.NET Web服务免受XXE攻击?,asp.net,xml,soap,xxe,Asp.net,Xml,Soap,Xxe,我正试图保护.NETWeb服务免受攻击。 因为底层SOAP消息是XML,所以它有潜在的风险 可以找到一种禁止对XML文档进行DTD处理的方法。 但是,SOAP消息的XML解析是由框架完成的 如何修改XML读取器的设置以关闭DTD处理? 我还寻找了一个可以直接访问XML内容的钩子,但在的文档中没有找到合适的钩子。我做了一些测试,表明ASP.NET web服务受到保护免受XXE攻击。 默认情况下,框架似乎关闭了DTD处理 我用它来做测试。 只需添加DOCTYPE定义,如 <?xml versi

我正试图保护.NETWeb服务免受攻击。 因为底层SOAP消息是XML,所以它有潜在的风险

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

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


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

我做了一些测试,表明ASP.NET web服务受到保护免受XXE攻击。 默认情况下,框架似乎关闭了DTD处理

我用它来做测试。 只需添加DOCTYPE定义,如

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

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

为了确保我没有弄乱SOAP消息,我还验证了 XML内容是独立的