public static string MakeWebSafe(this string x) {
const string RegexRemove = @"(<\s*script[^>]*>)|(<\s*/\s*script[^>]*>)";
return Regex.Replace(x, RegexRemove, string.Empty, RegexOptions.IgnoreCase);
}
这种实施是否有任何原因还不够好。你能打破吗?有什么我没考虑过的吗?如果您使用或使用过不同的东西,它有什么优势?
我知道这会在文本中留下脚本的主体,但这对于这个项目是可以的。
不要做以上!最后我跟着这个:HTML Agility Pack strip tags NOT IN whitelist。
答案 0 :(得分:4)
您是否考虑过这种情况?
<scri<script>pt type="text/javascript">
causehavoc();
</scr</script>ipt>
最好的办法是删除所有标签,编码或使用bbcode
答案 1 :(得分:2)
是的,您可以通过编码脚本标记的unicode来规避您的RegEx。我建议你在安全方面寻找更强大的库。看看Microsoft Web Protection Library