В C# методы copyto (), readtoend() и loadxml() также уязвимы для ddos-атаки. Как предотвратить быть уязвимым.
В C# методы copyTo (), readToEnd() и LoadXML() также уязвимы для DDoS-атаки из-за необходимости читать всю строку до конца, который обычно обозначается символом. Если этот символ не существует, функция будет продолжать читать и копировать данные до тех пор, пока все ресурсы не будут израсходованы и не будет выдана ошибка.
согласно сканированию WhiteHat, это заявление получено. Как можно предотвратить атаку типа "отказ в обслуживании" для этих методов. Есть ли какой-нибудь альтернативный метод? Или какие есть пункты, о которых можно позаботиться.
Этот нижеприведенный метод:
частная статические IsResponseError булевую переменную(строку ответа, из инт код ошибки, из строки сообщение об ошибке)
{
код ошибки = 0;
сообщение об ошибке = нуль;
ВАР код = ложь;
if (String.IsNullOrWhiteSpace (response)) return false;
ВАР XmlDocument объект = новый объект XmlDocument();
пробовать
{
xmlDocument.LoadXml(response); //это уязвимо.
}
ловить
{
// если вы находитесь здесь, то строка не является XML, что имеет место для аутентификации; в случае успеха возвращаемый токен является строкой, а не xml
возвращать false;
}
если (объект XmlDocument.Функцию documentelement != нуль)
{
//Руководство errorElement = объект XmlDocument.Функцию documentelement.SelectSingleNode ("//ERRORCODE");
ВАР errorElement = GetErrorNode(объект XmlDocument);
if (errorElement != null)
{
пробовать
{
код = истина;
errorCode = int. Parse(errorElement.Через свойство innerText);
если (ошибки.ContainsKey(код ошибки))
errorMessage = ошибки[код ошибки];
еще
{
код ошибки = 99999;
errorMessage = "неизвестное сообщение об ошибке:" + errorElement.Через свойство innerText;
}
}
ловить
{
код ошибки = 99999;
errorMessage = "неизвестное сообщение об ошибке:" + errorElement.Через свойство innerText;
}
}
}
вернуть код;
}
Что я уже пробовал:
Для LoadXml () я получил решение для предотвращения уязвимости..
Но для метода CopyTo () &readToEnd ().... Мне нужно решение.
Richard MacCutchan
Мне было бы интересно увидеть ваше объяснение того, как именно эти команды уязвимы для DDOS.
gggustafson
Я тоже хотел бы получить ответ на вопрос Ричарда.