У нас есть устаревшее веб-приложение на ASP.Net и C #, для которого мы получаем около 400 с лишним ошибок межсайтового скриптинга, вызванных сканированием Veracode. Я создал образец веб-приложения и смоделировал проблему и обнаружил, что всякий раз, когда мы используем какой-либо строковый ввод напрямую, это вызывает ошибку. Выполнение HttpUtility.HtmlEncode(TextBox1.Text);"
удовлетворяет веракоду, однако применение этого изменения во всех 400 местах невозможно, поскольку тогда потребуется огромный объем работы и усилий по тестированию. Я ищу способ реализовать какой-нибудь плагин в httphandler, чтобы все входные данные кодировались в одном месте, и нам не приходилось менять его везде. Может ли кто-нибудь направить меня, если это возможно, если да, даже если вы можете направлять меня только при приближении, было бы достаточно, чтобы иметь хотя бы направление. Спасибо заранее.
StringOps strop = new StringOps();
string txt1, txt2;
txt1 = HttpUtility.HtmlEncode(TextBox1.Text);
txt2 = HttpUtility.HtmlEncode(TextBox2.Text);
Response.Write(strop.Add(txt1, txt2));
Если я удалю строки HttpUtility.HTMLEncode, Veracode пожалуется на это. Поскольку существует очень много мест, где мы выполняем эти строковые операции, реализация этого повсюду неосуществима. Можно ли реализовать эту кодировку в одном месте, и весь ответ и запрос должны проходить через этот конвейер, например. HTTPHandler и HTTPModule.
Response.Write(TextBox1.Text)
, тебе будет плохо. Этот шаблон часто встречается в вашем коде? - person CodeCaster   schedule 21.11.2016StringOps
должны проверить ввод и отклонить недопустимые данные. Лучшим местом, конечно же, будет сама страница. Что делаетStringOps
? - person Panagiotis Kanavos   schedule 21.11.2016Response.Write
. Это отправляет клиенту необработанный текст. Почему ты вообще это делаешь? Это что-то вроде REST-сервиса? В любом случае ошибка в том, что вы не проверяете свой ввод. Кодирование только скроет ошибку от инструмента проверки. Это не предотвратит, например, SQL-инъекцию, если клиент введетx'; drop table users; --
- person Panagiotis Kanavos   schedule 21.11.2016HTMLEncode
аргумент дляResponse.Write
, отметит ли Veracode это? - person jdigital   schedule 27.11.2016HttpModule
в свой web.config .. что это за приложение и это страницы? (веб-форма - aspx?). кроме того, есть ли шаблон подчеркивания, который можно определить для этих запросов ... например, в url, fileExt или в этом отношении ... - person Brett Caswell   schedule 27.11.2016