Кодирующий выпадающий список каскадных веб-служб - XSS - PullRequest
0 голосов
/ 21 марта 2019

У меня есть функциональный веб-сервис, использующий выпадающие списки.Мне сказали, что у меня проблема с XSS (при попытке отправить не проверенные данные в браузер).Я пытался разместить HttpUtility.HtmlEncode в нескольких местах (вокруг SP, переменных и т. Д., Но сканирование все еще говорит мне, что у меня есть проблема. Я думаю, что «запрос» - это то, где проблема. Любая помощь приветствуется. Спасибо!

    [WebMethod]
        public CascadingDropDownNameValue[] GetIssueTypes(string knownCategoryValues)
        {
            string query = "Exec spSelectIssueTypes";
            List<CascadingDropDownNameValue> IssueTypes = GetData(query);
            return IssueTypes.ToArray();
        }

    [WebMethod]
        public CascadingDropDownNameValue[] GetDrivers(string knownCategoryValues)
        {
            string IssueTypeID = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues)["issueTypeID"];
            string query = string.Format("Exec spSelectDrivers @vIssueTypeID = {0} ", IssueTypeID);
            List<CascadingDropDownNameValue> Drivers = GetData(query);
            return Drivers.ToArray();
        }

    private List<CascadingDropDownNameValue> GetData(string query)
        {
            string conString = ConfigurationManager.ConnectionStrings["Store"].ConnectionString;

            SqlCommand cmd = new SqlCommand(query);
            List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
            using (SqlConnection con = new SqlConnection(conString))
            {
                con.Open();
                cmd.Connection = con;
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        values.Add(new CascadingDropDownNameValue
                        {
                            name = reader[0].ToString(),
                            value = reader[1].ToString()
                        });
                    }
                    reader.Close();
                    con.Close();
                    return values;
                }
            }
        }
...