检测输入字符串是否包含html c#

检测输入字符串是否包含html c#,c#,html,regex,C#,Html,Regex,我在网上查阅了这个话题,找到了一些答案,但我的问题还没有解决, 我已实施此方法: public bool ContainsHtml(string input) { bool containsHtml = (input != HttpUtility.HtmlEncode(input)); return containsHtml; } 因此,如果我测试一个包含任何html标记的字符串,这个方法将返回true,但问题是如果我测试的字符串是 "3>5" 它仍然会返回true,因

我在网上查阅了这个话题,找到了一些答案,但我的问题还没有解决, 我已实施此方法:

public bool ContainsHtml(string input)
{
    bool containsHtml = (input != HttpUtility.HtmlEncode(input));
    return containsHtml;
}
因此,如果我测试一个包含任何html标记的字符串,这个方法将返回true,但问题是如果我测试的字符串是

"3>5"
它仍然会返回true,因为字符串包含“>”符号,我不希望返回true,因为我只想检测字符串是否包含html

我也使用了这个正则表达式,但同样的问题再次出现:

public bool ContainsHtml(string input)
{
    Regex containsHtmlRegex = new Regex(@"<\s*([^ >]+)[^>]*>.*?<\s*/\s*\1\s*>");
    bool containsHtml = containsHtmlRegex .IsMatch(input);
    return containsHtml;
}
public bool ContainsHtml(字符串输入)
{
Regex containsHtmlRegex=新的正则表达式(@“]+)[^>]*>.*?);
bool containsHtml=containsHtmlRegex.IsMatch(输入);
返回容器shtml;
}
如果有人能帮助我,我将非常感激


提前感谢。

术语“包含HTML”基本上没有意义。如果只是讨论HTML标签呢?你到底想解决什么问题?在你的第一个例子中,一旦你用HTML编码,它的定义就是HTML…@SLaks我正在我的一个项目中实现OWASP,我不想在任何请求中使用任何HTML,所以我需要这个方法来识别sting中是否包含html。@Nia:不允许html真的没有意义。相反,你应该避开文本。我认为这个问题值得一个好的答案。黑客是出了名的顽固分子,所以即使是不应该包含HTML的字段,以后也可能被滥用。作为一名web开发人员,只需犯一个简单的错误,您的系统就可能遭到黑客攻击。避免此问题的一种方法是禁止字段中任何类似HTML的内容。所以问题是多少太多了。。。我认为这将是深入防御的一部分。