Золотое правило в безопасности - whitelist
вместо черного списка, вместо того, чтобы пытаться охватить все плохие символы, гораздо лучше проверить его, основываясь на том, что пользователь использует только известные хорошие символы.
Существуют решения, которые помогут вам создать большой белый список, необходимый для международного белого списка.Например, в .NET есть UnicodeCategory
.
Идея состоит в том, что вместо внесения в белый список тысяч отдельных символов библиотека назначает их в категории , такие как буквенно-цифровые символы, знаки препинания, управляющие символыи т. п.
Учебное пособие по созданию белых символов международных символов в .NET
Регулярное выражение Unicode: Категории