Код: Выделить всё
// Body portion
string postData = JsonConvert.SerializeObject(Body));
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Send the query
webRequest.ContentLength = byteArray.Length;
Stream dataStream = webRequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
Но при сканировании с помощью Fortify он жалуется с причиной сценария поперечного сайта: отраженное , на выносливости
dataStream.Write(byteArray, 0, byteArray.Length);
< /code>
Для рекомендаций не так ясно, каково это исправление < /p>
Рекомендации: < /p>
Решение для xss заключается в том, чтобы убедиться, что проверка в правильных местах и проверяется, что в соответствии с тем, что в связи с тем, что в сочетании. Вывод, одним логическим подходом является проверка данных непосредственно перед тем, как покинуть приложение. Однако, поскольку веб -приложения часто имеют сложный и сложный код для генерации динамического контента, этот метод подвержен ошибкам упущения (отсутствующая проверка). Эффективный способ смягчения этого риска состоит в том, чтобы также выполнить проверку ввода для XSS. Несмотря на свое значение, входная проверка для XSS не заменяет строгую проверку вывода. Приложение может принять вход через общий хранилище данных или другой надежный источник, и что хранилище данных может принимать вход из источника, который не выполняет адекватную проверку ввода. Следовательно, приложение не может неявно полагаться на безопасность этих или любых других данных. Это означает, что лучший способ предотвратить уязвимости XSS - это проверить все, что входит в приложение и оставляет приложение, предназначенное для пользователя. Например, действительное имя пользователя может включать только альфа-нучевые символы, или номер телефона может включать только цифры 0-9. Тем не менее, это решение часто невозможно в веб -приложениях, потому что многие символы, которые имеют особое значение для браузера, все еще следует считать достоверным вводом, когда они кодируются, такие как доска объявлений веб -дизайна, которая должна принимать фрагменты HTML от его пользователей. Чтобы сформировать такой список, вам сначала нужно понять набор символов, которые имеют особое значение для веб -браузеров. Хотя стандарт HTML определяет, какие символы имеют особое значение, многие веб -браузеры пытаются исправить общие ошибки в HTML и могут рассматривать других персонажей как особые в определенных контекстах, поэтому мы не поощряем использование черных списков как средство предотвращения XSS. Координационный центр CERT (R) в Институте разработки программного обеспечения в Университете Карнеги-Меллона содержит следующие подробности об особых символах в различных контекстах [1]: < /p>
В содержании элемента уровня блока (в середине параграфа текста): < /p>
[*] » < /li>
"&" особенный, потому что он вводит персонаж. />> Значение.
[*] В значениях атрибутов без каких-либо кавычек символы белого пространства, такие как пространство и вкладка, являются особенными.
»&"-это особенное, когда используется с определенными атрибутами, потому что он вводит персонаж. /> В URL-адресах, например, поисковая система может предоставить ссылку на странице результатов, которую пользователь может нажать, чтобы повторно запустить поиск. Это может быть реализовано путем кодирования поискового запроса внутри URL, который вводит дополнительные особые символы: < /p>
Пространство, вкладка и новая линия являются особенными, потому что они отмечают конец URL. Параметры. < /p>
< /li>
не допускается символы, не допускаемые в кодировке ISO-8859-1), поэтому они считаются особенными в этом контексте. Последовательности побега декодируются кодом на стороне сервера. Например, «%» должен быть отфильтрован, если ввод, такой как «%68%65%6C%6C%6F», становится «привет», когда он появляется на данной веб -странице. Отфильтрован в ситуациях, когда текст можно вставить непосредственно в ранее существовавшего тега скрипта. /> < /ul>
Другие возможности: < /p>
Если злоумышленник представляет запрос в UTF-7, специальный символ «
Подробнее здесь: https://stackoverflow.com/questions/563 ... -reflected