假设我有一个表单元素,它应该允许任何合理的字符串来命名某物(IE类似于这个问题的标题)。
如何验证字符串是否合理,而不是奇怪或不安全的东西?(假设像Unicode这样的表情符号☺是合理的)
当然,检查所有转义字符,如换行符、表单提要等,都是给定的。但是,像长度这样的东西比较难,因为一个英文的描述性名称很难用一个字符,但在中文中却是微不足道的。
有31个Unicode类,哪些是安全的?
在Javascript或C#中,完整的regex或类似的检查是什么样子的?
发布于 2016-11-30 14:59:02
如何验证字符串是否合理,而不是奇怪或不安全的东西?
你所说的“不安全”是什么意思还不清楚。正如@gmiley所说,不能通过过滤输入来防止像XSS这样的注入问题;这是一个输出转义问题。
至于“合理”,一个好的起点是:
String.Normalize
in C#),例如,将代码点标准化为合并重音的标准格式C,或者将普通格式KC标准化,以使fullwidth
文本这样的奇数变平,根据观众的不同,您可能希望也可能不想这样做。https://stackoverflow.com/questions/40879447
复制相似问题