如何使用 xss 过滤器后还原 html 输入
为了防止跨站脚本攻击,xss 过滤器会对非法字符进行转义,导致页面显示不正确。为了解决这个问题,我们有两种方法:
在页面上转义
在页面渲染的代码中使用 html 解码器,将转义后的字符还原为原始输入。
java 代码中转义
使用 spring security 的 responsebodyadvice 切面,在返回响应之前对 json 内容进行 html 解码。这种方法需要在 java 代码中配置以下内容:
@Configurationpublic class XssConverterConfiguration { @Bean public ResponseBodyAdvice converter() { return new XssConverter(); }}public class XssConverter implements ResponseBodyAdvice { @Override public boolean supports(MethodParameter returnType, Class converterType) { return true; } @Override public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { if (body instanceof String) {return HtmlUtils.htmlUnescape((String) body); } return body; }}
以上就是如何使用 XSS 过滤器后还原 HTML 输入?的详细内容,更多请关注范的资源库其它相关文章!
转载请注明:范的资源库 » 如何使用XSS过滤器后还原HTML输入?