c# - 如何防止 .net 中的危险字符
问题描述
我开发了一个移动应用程序,它的后端是 .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()}");
}
上面的代码产生了这个结果:
推荐阅读
- java - RxAndroidBLE 试图读取特征给出编译错误
- python - “RuntimeError:self 必须是一个矩阵”
- java - 确定字符串是否以 ; 开头的正则表达式
- python - Python遍历001-100范围内的文件名
- pug - 除了将值作为参数传入之外,有没有办法将值公开给 pug 模板?
- android - 使用导航组件将一个片段的值传递给另一个片段时未生成 FragmentArgs 类
- android - 有没有办法访问 BottomNavigationBarItem() 的标签文本并更新 appBarTitle 值,而不是使用硬编码的 SWITCH - CASE?
- flutter - 将 ViewModel 的访问方法 Flutter 到另一个 ViewModel 中
- c++ - 如何重载 + 运算符来添加两个队列?
- html - 我必须申请什么CSS来摆脱这个无用的间距?