C# 如何防止.net中的危险字符

C# 如何防止.net中的危险字符,c#,.net,C#,.net,我开发了一个移动应用程序,其后端是.net framework。我需要验证到达后端的数据是否存在危险字符,例如 &%)={}() 如果存在这些类型的字符,我需要终止请求并发送错误消息如果Regex不是必需的,那么您可以编写一个stringextension,返回一个bool,指示该值是否有效 public static class StringExtensions { private static char[] invalidChars = { '<', '>', '&

我开发了一个移动应用程序,其后端是.net framework。我需要验证到达后端的数据是否存在危险字符,例如

&%)={}()


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

如果Regex不是必需的,那么您可以编写一个stringextension,返回一个bool,指示该值是否有效

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;
    }
}
上面的代码生成以下结果:


如果不需要正则表达式,则可以编写一个stringextension,返回一个bool,指示该值是否有效

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;
    }
}
上面的代码生成以下结果:


您可以使用.Net的方法来实现这一点。
试着这样做:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string input = @"(a>da <asd> fds&sd fsdf%dsf;sd f=sdf{sdf} asd(as)dfs";
        // NOTE: REPLACE the pattern with the one you need
        string pattern = @"<|>|&|%|;|=|{|}|\(|\)";
        string replacement = "";
        string result = Regex.Replace(input, pattern, replacement);

        Console.WriteLine("Original String: {0}", input);
        Console.WriteLine("Replacement String: {0}", result);                             
    }
}
使用系统;
使用System.Text.RegularExpressions;
公开课范例
{
公共静态void Main()
{
字符串输入=@“(a>da fds&sd fsdf%dsf;sd f=sdf{sdf}asd(as)dfs”;
//注意:用您需要的图案替换该图案
字符串模式=@“|和|%| |=|{124;}|\(|\)”;
字符串替换=”;
字符串结果=Regex.Replace(输入、模式、替换);
WriteLine(“原始字符串:{0}”,输入);
WriteLine(“替换字符串:{0}”,结果);
}
}

您可以使用.Net的方法实现这一点。
试着这样做:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string input = @"(a>da <asd> fds&sd fsdf%dsf;sd f=sdf{sdf} asd(as)dfs";
        // NOTE: REPLACE the pattern with the one you need
        string pattern = @"<|>|&|%|;|=|{|}|\(|\)";
        string replacement = "";
        string result = Regex.Replace(input, pattern, replacement);

        Console.WriteLine("Original String: {0}", input);
        Console.WriteLine("Replacement String: {0}", result);                             
    }
}
使用系统;
使用System.Text.RegularExpressions;
公开课范例
{
公共静态void Main()
{
字符串输入=@“(a>da fds&sd fsdf%dsf;sd f=sdf{sdf}asd(as)dfs”;
//注意:用您需要的图案替换该图案
字符串模式=@“|和|%| |=|{124;}|\(|\)”;
字符串替换=”;
字符串结果=Regex.Replace(输入、模式、替换);
WriteLine(“原始字符串:{0}”,输入);
WriteLine(“替换字符串:{0}”,结果);
}
}

是否需要使用正则表达式来解决问题?这些“危险字符”是什么意思?换句话说,什么是有效字符集,为什么是有效字符集?@Udara,我想你应该在你的问题中添加限制这些字符的目的。如果你想防止字符串中包含HTML,那就不同了,对于JS来说是另一回事,对于存储文件,对于SQL来说,它们是完全不同的。知道目的吗E会让我们更容易帮助你。你为什么认为它们是危险的?是否需要使用正则表达式来解决这个问题?这些“危险人物”在什么意义上??换句话说,什么是有效字符集,为什么是有效字符集?@Udara,我想你应该在你的问题中添加限制这些字符的目的。如果你想防止字符串中包含HTML,那就不同了,对于JS来说是另一回事,对于存储文件,对于SQL来说,它们是完全不同的。知道目的吗E会让我们更容易帮助你。你为什么认为他们是危险的?我喜欢你的方法建议延长方法。我喜欢你的方法建议延长方法。