Как сказать, что параметр не раскрывает межсайтовый скриптинг - PullRequest
0 голосов
/ 03 августа 2020
using System.Web.Mvc;
using System.Text.Encodings.Web;

namespace VulnerableApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public string Get(string userName)
        {
            if(userName.Contains("<script>"))
            {
                return "Invalid Data";
            }
            string temporary_variable = HtmlEncoder.Default.Encode(userName);
            temporary_variable = userName;
            return "value " + temporary_variable;
        }
    }
}

В этом примере я не могу найти способ, как отслеживать операторы возврата и получать назначенные данные. Может ли кто-нибудь помочь найти это. Я создаю ControlFlowGraph

ControlFlowGraph controlFlowGraph = ControlFlowGraph.Create(method, model);
foreach (var basicBlock in controlFlowGraph.Blocks)
{
    WriteLine("IsReachable {0}", basicBlock.IsReachable);
    WriteLine("ConditionKind {0}", basicBlock.ConditionKind);
    WriteLine("------Operations---");
    foreach (var operation in basicBlock.Operations)
    {
        WriteLine("{0} {1}", operation.Syntax.Kind(), operation.Syntax.ToFullString());
    }
}
...