【发布时间】:2016-02-16 00:52:02
【问题描述】:
我正在使用一些正则表达式来清理文本中的标签
static string Pattern = "<(?:[^>=]|='[^']*'|=\"[^\"]*\"|=[^'\"][^\\s>]*)*>";
static public string StripHtml(string Value)
{
return Regex.Replace(Value, Pattern, string.Empty);
}
虽然这看起来很安全,但我想知道它是否真的安全?有没有办法在不使用标签的情况下执行 XSS?
使用降价编辑器会更好,还是因为它们也允许标记而仍然存在类似问题?
或者我应该手动解析我想要的标签并让他们放什么?
【问题讨论】:
-
Markdown not 不能防止 XSS(即使禁用了原始 HTML)。看到这个:michelf.ca/blog/2010/markdown-and-xss
-
您是否考虑了此处列出的所有情况:owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
-
@Waylan 正则表达式绝对不安全,应该有办法仍然注入,我只是想找出防止它的最佳方法。
标签: c# html regex markdown xss