首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >安全unicode字符串/名称

安全unicode字符串/名称
EN

Stack Overflow用户
提问于 2016-11-30 02:53:26
回答 1查看 215关注 0票数 0

假设我有一个表单元素,它应该允许任何合理的字符串来命名某物(IE类似于这个问题的标题)。

如何验证字符串是否合理,而不是奇怪或不安全的东西?(假设像Unicode这样的表情符号☺是合理的)

当然,检查所有转义字符,如换行符、表单提要等,都是给定的。但是,像长度这样的东西比较难,因为一个英文的描述性名称很难用一个字符,但在中文中却是微不足道的。

有31个Unicode类,哪些是安全的?

在Javascript或C#中,完整的regex或类似的检查是什么样子的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-30 22:59:02

如何验证字符串是否合理,而不是奇怪或不安全的东西?

你所说的“不安全”是什么意思还不清楚。正如@gmiley所说,不能通过过滤输入来防止像XSS这样的注入问题;这是一个输出转义问题。

至于“合理”,一个好的起点是:

  • 正如您所提到的,不允许控制字符:U+0000-U+001 F和U+007F-U+009F,减去换行符,如果您想要允许的话,还可以使用选项卡。
  • 特别是对于web应用程序,根据unicode-xml注释,不允许使用“不适合在标记中使用”的字符。这样可以防止像从右到左覆盖那样的布局技巧。
  • Unicode规范化(String.Normalize in C#),例如,将代码点标准化为合并重音的标准格式C,或者将普通格式KC标准化,以使fullwidth文本这样的奇数变平,根据观众的不同,您可能希望也可能不想这样做。
  • 如果您不喜欢Zͪ,a̻͍l̀g̐ͦ͢oͬ̓ṯ̺ͮěͧ̚͞x͕̀̇ṱ̢͖̩̮̆̃ͤ,您可能会考虑使用ͬ̓。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40879447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档