我解析请求参数以查找任何易受攻击的字符以防止XSS威胁。我们的网络应用程序支持英语以外的法语和德语。我使用下面的正则表达式来实现这一点,但它未办理法国和德国正则表达式匹配法语和德语字符
^[a-zA-Z0-9\r\n\\-=\\*\\.\\?;,+\\/:&_ %@#]*$
对此有何建议高度赞赏
我解析请求参数以查找任何易受攻击的字符以防止XSS威胁。我们的网络应用程序支持英语以外的法语和德语。我使用下面的正则表达式来实现这一点,但它未办理法国和德国正则表达式匹配法语和德语字符
^[a-zA-Z0-9\r\n\\-=\\*\\.\\?;,+\\/:&_ %@#]*$
对此有何建议高度赞赏
尝试[\p{Latin}\p{Punctuation}\p{Math_Symbol}]
或添加更多的字符类。对于其他Unicode字符类别,请看here。
我知道这是一个老问题。
但希望它能帮助那里的人!你可以试试这个正则表达式:
([\u0020-\u007e\u00a0-\u00ff\u0100-\u017F]+)
基本上它应该与所有拉美和扩展拉丁字符,包括数字,随时根据需要去除Unicode字符。我会说,这将是最适合所有场景的最可靠方法。
参考文献:
这正则表达式是您使用的变体:Perl,Python和.NET,还是其他什么东西? (该解决方案将与Unicode字符类相关,但细节取决于正则表达式实现。) – Richard 2011-04-20 07:45:14