Reflected_XSS_All_Clients (проблема очистки C#)
Я использую инструмент Checkmarx для сканирования кода на наличие уязвимостей безопасности. Одним из них является «Отраженный XSS для всех клиентов». Общее решение для очистки — использовать HttpUtility.UrlEncode или HttpUtility.HtmlEncode. Я столкнулся с кодом, в котором любая из этих функций нарушает код, поскольку удаляет теги, которые в данном случае необходимы для перенаправления. Это не код, который я написал, а сканирование клиента. Есть идеи, как исправить эту уязвимость?
private string GetRedirectForm(string url, string response)
{
StringBuilder sb = new StringBuilder();
sb.Append("<html>");
sb.AppendFormat("<body onload='document.forms[0].submit()'>");
sb.AppendFormat("<form action='{0}' method='post'>", url);
sb.AppendFormat("<input type='hidden' name='SAMLResponse' value='{0}'>", response);
sb.Append("</form>");
sb.Append("</body>");
sb.Append("</html>");
return HttpUtility.UrlEncode( sb.ToString());
}