Как защитить веб-службы .NET от эксплойтов XXE?

Я пытаюсь защитить веб-службу .NET от эксплойтов XXE. Поскольку основное сообщение SOAP представляет собой XML, оно потенциально подвержено риску.

Способ запретить обработку DTD для XML-документов можно найти здесь. и здесь. Однако синтаксический анализ XML сообщения SOAP выполняется платформой.

Как изменить настройки средства чтения XML, чтобы отключить обработку DTD?

Я также искал хук для прямого доступа к содержимому XML, но не нашел ничего подходящего в документации Веб-служба.


person Hermann Schachner    schedule 30.11.2016    source источник


Ответы (1)


Я провел несколько тестов, которые показали, что веб-службы ASP.NET защищены от атак XXE. Фреймворк, по-видимому, отключает обработку DTD по умолчанию.

Для тестирования я использовал Soap UI. Просто добавив определение DOCTYPE, например

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

привел к ошибке неправильного запроса (состояние HTTP 400).

Чтобы убедиться, что я не просто испортил SOAP-сообщение, я также отдельно проверил содержимое XML.

person Hermann Schachner    schedule 16.12.2016