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; }
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); }
internal ItemChecker(IronJint IJ) { this.IJ = IJ; }