首页 > 解决方案 > 如何防止 .net 中的危险字符

问题描述

我开发了一个移动应用程序,它的后端是 .net 框架。我需要验证传入后端的数据是否存在危险字符,例如

<>&%;={}()

如果存在这些类型的字符,我需要终止请求并发送错误消息

标签: c#.net

解决方案


如果 Regex 不是必需的,那么您可以编写一个字符串扩展,它返回一个布尔值,指示该值是否有效。

public static class StringExtensions
{
    private static char[] invalidChars = { '<', '>', '&', '%', ';', '=', '{', '}', '(', ')' };

    public static bool IsValid(this string value)
    {
        if (value == null)
        {
            return false;
        }

        foreach (char c in invalidChars)
        {
            if (value.Contains(c))
            {
                return false;
            }
        }

        return true;
    }
}

然后你可以像这样检查它:

static void Main(string[] args)
{
    string validString = "Hello World";
    string invalidString = "Hello (World)";

    Console.WriteLine($"{validString} --> {validString.IsValid()}");
    Console.WriteLine($"{invalidString} --> {invalidString.IsValid()}");
}

上面的代码产生了这个结果:

例子


推荐阅读