使用vb.net中的REGEX从任何字符串中删除嵌套的<script>标记

时间:2016-02-26 05:25:52

标签: javascript regex vb.net xss sanitization

我有一个清理输入文本字符串的函数,并从中删除&lt; script&gt; 标记。

&#xA;&#xA;
 公共共享函数RemoveXssScript(html As String)As String&#xA; Dim data As String = If(html,“”)&#xA;&#xA; Dim pattern As String =“&lt; script \\ b [^&lt;] *(?:(?!&lt; \\\ / script&gt;)&lt; [^&lt;] *)*&lt; \\\ / script&gt /克“&#XA;&#XA;而Regex.IsMatch(data,pattern,RegexOptions.IgnoreCase)&#xA; data = Regex.Replace(data,pattern,“”)&#xA;结束时#&#xA;&#xA;返回数据&#xA;结束函数&#xA;  
&#xA;&#xA;

此处正则表达式不适用于嵌套脚本标记字符串。&#xA;以下是我的测试字符串:

&#xA;&#xA;

1。

&#xA;&#xA;
 &lt;'&lt; script&gt;&lt; / script&gt; script type =“text /的javascript“&GT;人&LT;脚本&GT; &LT; /脚本&GT; ERT( “测试”);&LT;'&LT;脚本&GT;&LT; /脚本&GT; /脚本&GT; &#XA;  
&#XA;&#XA;

2

&#XA;&#XA;
 <代码>&LT;&LT;脚本&GT;&LT ; / script&gt; script type =“text / javascript”&gt; alert(“test”);&lt;&lt; script&gt;&lt; / script&gt; / script&gt;&#xA;  
&#xA ;&#xA;

3。

&#xA;&#xA;
 &lt;'&lt; script&gt;&lt; / script&gt; script type =“text / javascript”&gt;人&LT;脚本&GT;&LT; /脚本&GT; ERT( “测试”);&LT;'&LT;脚本&GT;&LT; /脚本&GT; /脚本&GT;&#XA;  
&#XA;&#XA ;

我必须使用REGEX从字符串中删除所有脚本标记。如果没有解析嵌套脚本的解决方案,可能我必须使用从文本中检测任何一个脚本标记并删除完整字符串的解决方案

&#xA;&#xA;

我需要一个REGEX来检测嵌套和正常的脚本标签并将其剥离。&#xA;谢谢。

&#xA;

0 个答案:

没有答案