C# 如何防止.net中的危险字符
我开发了一个移动应用程序,其后端是.net framework。我需要验证到达后端的数据是否存在危险字符,例如 &%)={}()C# 如何防止.net中的危险字符,c#,.net,C#,.net,我开发了一个移动应用程序,其后端是.net framework。我需要验证到达后端的数据是否存在危险字符,例如 &%)={}() 如果存在这些类型的字符,我需要终止请求并发送错误消息如果Regex不是必需的,那么您可以编写一个stringextension,返回一个bool,指示该值是否有效 public static class StringExtensions { private static char[] invalidChars = { '<', '>', '&
如果存在这些类型的字符,我需要终止请求并发送错误消息如果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会让我们更容易帮助你。你为什么认为他们是危险的?我喜欢你的方法建议延长方法。我喜欢你的方法建议延长方法。