我正在解析请求参数以查找任何易受攻击的字符以防止XSS威胁。我们的Web应用程序支持除英语之外的法语和德语。我使用以下正则表达式来实现此目的,但它无法处理法语和德语
^[a-zA-Z0-9\r\n\\-=\\*\\.\\?;,+\\/:&_ %@#]*$
对此有任何建议,我们非常感谢
答案 0 :(得分:8)
答案 1 :(得分:4)
尝试[\p{Latin}\p{Punctuation}\p{Math_Symbol}]
或添加更多字符类。查看其他unicode字符类的here。
答案 2 :(得分:0)
我知道这是一个老问题。
但希望它帮助那里的人!你可以试试这个正则表达式:
([\u0020-\u007e\u00a0-\u00ff\u0100-\u017F]+)
基本上它应匹配所有拉丁语和扩展拉丁字符,包括数字,随意删除unicode字符。我想说这将是让你适应所有场景的最可靠方法。
参考文献: