Как я могу защитить.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 отдельно.

Другие вопросы по тегам