예제 #1
0
 internal JintItem(SourceCodeDescriptor Source, JintState State, IronJint IJ)
 {
     if (Source != null)
     {
         this.LineNo = Source.Start.Line;
         this.CharNo = Source.Start.Char;
     }
     else
     {
         this.LineNo = IJ.CurrentLineNo;
         this.CharNo = IJ.CurrentCharNo;
     }
     this.State = State;
 }
예제 #2
0
        TaintResult FindTaints(string Code)
        {
            TaintResult TR = new TaintResult();

            Code = Tools.HtmlEncode(IronJint.Beautify(Code));

            foreach (Match M in SinkRegex.Matches(Code))
            {
                if (M.Success)
                {
                    if (!TR.Sinks.Contains(M.Value))
                    {
                        Code = Code.Replace(M.Value, string.Format("<span class='sink_match'>{0}</span>", M.Value));
                        TR.Sinks.Add(M.Value);
                    }
                    TR.SinkCount++;
                }
            }
            foreach (Match M in JquerySinkRegex.Matches(Code))
            {
                if (M.Success)
                {
                    if (!TR.Sinks.Contains(M.Value))
                    {
                        Code = Code.Replace(M.Value, string.Format("<span class='sink_match'>{0}</span>", M.Value));
                        TR.Sinks.Add(M.Value);
                    }
                    TR.SinkCount++;
                }
            }

            foreach (Match M in SourceRegex.Matches(Code))
            {
                if (M.Success)
                {
                    if (!TR.Sources.Contains(M.Value))
                    {
                        Code = Code.Replace(M.Value, string.Format("<span class='source_match'>{0}</span>", M.Value));
                        TR.Sources.Add(M.Value);
                    }
                    TR.SourceCount++;
                }
            }

            TR.HighlightedCode = Code.Replace("\r\n", "<br>").Replace("\r", "<br>").Replace("\n", "<br>");
            return(TR);
        }
예제 #3
0
 internal ItemChecker(IronJint IJ)
 {
     this.IJ = IJ;
 }