Как я могу защитить.NET Web Services от эксплойтов XXE?
Я пытаюсь защитить веб-сервис.NET от эксплойтов XXE. Поскольку основным сообщением SOAP является XML, оно потенциально находится под угрозой.
Способ запретить обработку DTD для документов XML можно найти здесь и здесь. Однако синтаксический анализ сообщения SOAP в формате XML выполняется платформой.
Как я могу изменить настройки считывателя XML, чтобы отключить обработку DTD?
Я также искал ловушку для прямого доступа к содержимому XML, но не нашел ничего подходящего в документации WebService.
1 ответ
Я провел несколько тестов, которые показали, что веб-сервисы ASP.NET защищены от XXE-атак. Кажется, каркас отключает обработку DTD по умолчанию.
Я использовал Soap UI для тестирования. Просто добавив определение DOCTYPE, как
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root[
<!ENTITY laugh "hahahahaha">
]>
привел к ошибке неверного запроса (HTTP Status 400).
Чтобы убедиться, что я не просто испортил SOAP-сообщение, я также проверил содержимое XML отдельно.