我解析請求參數以查找任何易受攻擊的字符以防止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