我有一个用户可以在互联网上输入的字符串,目前它没有受到XSS攻击的保护.我希望能够替换<和>符号.通常称为"小于","超过","尖括号"等.
我确信这已被问了一百万次,但我找不到一个简单的答案.我认为正则表达式是前进的方向,但无法弄清楚如何选择这些字符.
你真的应该使用StringEscapeUtils.escapeHtml()来自Apache的百科全书郎,而不是正则表达式的这一点.例如,您需要做的就是:
String escaped = StringEscapeUtils.escapeHtml(input);
Run Code Online (Sandbox Code Playgroud)
防止XSS的最佳做法是转义所有HTML实体,此方法为您处理这些情况.否则,您将编写,测试和维护自己的代码以执行已完成的操作.有关更多详细信息,请参阅OWASP XSS(跨站点脚本)预防备忘单.