PHPAnalysis.Analysis.CFG.Taint.TaintBlockAnalyzer.CheckForSQLVulnerabilities C# (CSharp) Метод

CheckForSQLVulnerabilities() приватный Метод

private CheckForSQLVulnerabilities ( ExpressionInfo expressionInfo, XmlNode node ) : void
expressionInfo ExpressionInfo
node System.Xml.XmlNode
Результат void
        private void CheckForSQLVulnerabilities(ExpressionInfo expressionInfo, XmlNode node)
        {
            foreach (var vuln in expressionInfo.ExpressionTaint.SqliTaint)
            {
                if (vuln.TaintTag != SQLITaint.None)
                {
                    string message = "SQL vulnerability found on variable: " + vuln.InitialTaintedVariable +
                                     " on line: " + AstNode.GetStartLine(node) + " in file: " + _analysisStacks.IncludeStack.Peek();
                    _vulnerabilityStorage.AddVulnerability(new VulnerabilityInfo()
                                                           {
                                                               Message = message,
                                                               IncludeStack = _analysisStacks.IncludeStack.ToImmutableStack(),
                                                               CallStack = _analysisStacks.CallStack.ToImmutableStack(),
                                                           });
                }
            }
            if (expressionInfo.ValueInfo.PossibleStoredTaint == null)
            {
                return;
            }
            var sqliTaintSets = expressionInfo.ValueInfo.PossibleStoredTaint.Taint.SqliTaint;
            foreach (var possibleVuln in sqliTaintSets.Where(taint => taint.TaintTag != SQLITaint.None))
            {
                string varName = possibleVuln.InitialTaintedVariable ?? "???";
                var vulnMessage = "Tainted outgoing reaches sensitive sink: {0} on line: {1} in file: {2}";
                string message = string.Format(vulnMessage, varName, AstNode.GetStartLine(node), _analysisStacks.IncludeStack.Peek());
                var vulnInfo = new StoredVulnerabilityInfo()
                               {
                                   Message = message,
                                   PossibleStoredVuln = expressionInfo.ValueInfo.PossibleStoredTaint,
                                   IncludeStack = _analysisStacks.IncludeStack.ToImmutableStack(),
                                   CallStack = _analysisStacks.CallStack.ToImmutableStack(),
                                   VulnerabilityType = VulnType.SQL
                               };
                _vulnerabilityStorage.AddPossibleStoredVulnerability(vulnInfo);
            }
        }