Код: Выделить всё
// 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();
< /code>
to body < /code> будет объектом JSON, и я намерен сериализовать его, чтобы его можно было представить в виде строки, которая будет отправлена в WebServer.
Но когда Сканирование с помощью Fortify, он жалуется на причину перекрестного сценария: Reflected
dataStream.Write(byteArray, 0, byteArray.Length);
< /code>
Для рекомендаций не так ясно. /> Решение XSS состоит в том, чтобы убедиться, что проверка происходит в правильных местах, а проверки сделаны для правильных свойств. Его вывод, одним логическим подходом является проверка данных непосредственно перед тем, как покинуть приложение. Однако, поскольку веб -приложения часто имеют сложный и сложный код для генерации динамического контента, этот метод подвержен ошибкам упущения (отсутствующая проверка). Эффективный способ смягчения этого риска - также выполнить проверку ввода для XSS. Механизм для включения чеков на XSS, как правило, относительно прост. Несмотря на свое значение, входная проверка для XSS не заменяет строгую проверку вывода. Приложение может принять вход через общий хранилище данных или другой надежный источник, и что хранилище данных может принимать вход из источника, который не выполняет адекватную проверку ввода. Следовательно, приложение не может неявно полагаться на безопасность этих или любых других данных. Это означает, что лучший способ предотвратить уязвимости XSS - это проверить все, что входит в приложение, и оставляет приложение, предназначенное для пользователя. безопасных символов, которым разрешено появляться в контенте HTTP, и принимать вход, составленный исключительно из символов в утвержденном наборе. Например, действительное имя пользователя может включать только альфа-нучевые символы, или номер телефона может включать только цифры 0-9. Тем не менее, это решение часто невозможнее в веб -приложениях, потому что многие символы, которые имеют особое значение для браузера, все еще должны считаться допустимым вводом после их кодирования, например, доска объявлений веб -дизайна, которая должна принимать фрагменты HTML от своих пользователей.
В содержании элемента уровня блока. (В середине абзаца текста): < /p>
[*] " «Особо, потому что некоторые браузеры рассматривают это как особые, предполагая, что автор страницы намеревался включить открытие«
Следующие принципы применимы к значениям атрибутов: < /p>
[*] В значениях атрибутов, заключенных с двойными кавычками, Двойные кавычки являются особенными, потому что они отмечают конец значения атрибута. Потому что они отмечают конец значения атрибута. < /p>
< /li>
В значениях атрибутов без каких-либо кавычек, белого пространства символов, таких как пространство и вкладка, особенные. < /p>
< /li>
"&" - это особенное при использовании с определенными атрибутами, потому что он вводит символ. < /p>
< /li>
< /ul>
В URL-адресах, например, поисковая система может предоставить ссылку на странице результатов, которую пользователь может нажать, чтобы повторно запустить поиск. Это может быть реализовано путем кодирования поискового запроса внутри URL, который представляет дополнительные специальные символы: < /p>
Пространство, вкладка и новая линия являются особенными, потому что потому что это Они отмечают конец URL.
"&" - это особенное, потому что он либо представляет собой символ, либо отделяет параметры CGI.
< /li>
не ASCII символы (то есть все выше 128 в кодировании ISO-8859-1) не допускаются в URL, поэтому они считаются Будьте особенными в этом контексте. < /p>
< /li>
Символ «%» должен быть отфильтрован из параметров входных данных в любом месте, кодируемых с последовательностями Escoce HTTP, декодируется сервером- побочный код. Например, «%» должен быть отфильтрован, если ввод, такой как «%68%65%6C%6C%6F», становится «привет», когда он появляется на данной веб -странице.
< /ul>
В теле a: < /p>
полуколоны, скобки, кудрявые скобки и новую линию символы должны быть отфильтрованы в ситуациях, когда текст может быть вставлен непосредственно в ранее существовавший тег скрипта. Br />
Скрипты на стороне сервера, которые преобразуют любые восклицательные символы (!) Ввод в двойные цифровые символы (") на выводе могут потребовать дополнительной фильтрации. < /li>
< /ul>
Другие возможности: < /p>
Если злоумышленник подает запрос в UTF-7, появляется специальный символ '
Подробнее здесь: https://stackoverflow.com/questions/563 ... -reflected