博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springBoot SpringMVC解决XSS漏洞 -非重写request 支持普通form提交
阅读量:4072 次
发布时间:2019-05-25

本文共 1191 字,大约阅读时间需要 3 分钟。

全网解决XSS漏洞都是让你重写一个 request,或者又教你 写MessageConverter,但是项目中用到了shiro,所以重写request和shrio冲突,因为shiro 也重写了request,MessageConverter又只支持application/json方式提交的,普通的form提交没球用。

最终解决方案为:使用自定义转换器,当是set string的时候走我们自己写的一段代码来处理string。

 

public class XSSStringEditor extends PropertyEditorSupport implements WebBindingInitializer {    /**     * @see java.beans.PropertyEditorSupport#setAsText(java.lang.String)     */    @Override    public void setAsText(String text) throws IllegalArgumentException {        String formBody= Jsoup.clean(text, Whitelist.relaxed().addAttributes(":all", "style"));        setValue(formBody);    }    /**     * @see java.beans.PropertyEditorSupport#getAsText()     */    @Override    public String getAsText() {        return  getValue()==null?null : ConverterUtils.toString(getValue());    }    @Override    public void initBinder(WebDataBinder binder, WebRequest request) {        binder.registerCustomEditor(String.class, this);    }}
@Configurationpublic class SafeConfig {    @Autowired    public void setWebBindingInitializer(RequestMappingHandlerAdapter requestMappingHandlerAdapter) {        requestMappingHandlerAdapter.setWebBindingInitializer(new XSSStringEditor());    }}

 

转载地址:http://igwni.baihongyu.com/

你可能感兴趣的文章
my read work
查看>>
db db2 base / instance database tablespace container
查看>>
hd disk / disk raid / disk io / iops / iostat / iowait / iotop / iometer
查看>>
project ASP.NET
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
OS + Unix Aix telnet
查看>>
IBM Lotus
查看>>
Linux +Win LAMPP Tools XAMPP 1.7.3 / 5.6.3
查看>>
my read_university
查看>>
network manager
查看>>
OS + Linux Disk disk lvm / disk partition / disk mount / disk io
查看>>
RedHat + OS CPU、MEM、DISK
查看>>
net TCP/IP / TIME_WAIT / tcpip / iperf / cain
查看>>
webServer kzserver/1.0.0
查看>>
OS + Unix IBM Aix basic / topas / nmon / filemon / vmstat / iostat / sysstat/sar
查看>>
my ReadMap subway / metro / map / ditie / gaotie / traffic / jiaotong
查看>>
OS + Linux DNS Server Bind
查看>>
linux下安装django
查看>>
Android 解决TextView设置文本和富文本SpannableString自动换行留空白问题
查看>>
最完整的Java IO流学习总结
查看>>