[英]Stripping script tags from HTML input
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 。
你考虑过这种情况吗??
<scri<script>pt type="text/javascript">
causehavoc();
</scr</script>ipt>
最好的办法是删除所有标签,对事物进行编码,或者使用 bbcode
是的,您的 RegEx 可以通过 unicode 编码脚本标签来规避。 我建议您在安全性方面寻找更强大的库。 看看微软 Web 保护库
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.