您当前的位置:首页 > 电脑百科 > 安全防护 > 数据安全

简单配置spring mvc,防止xss注入

时间:2022-06-24 11:27:01  来源:  作者:杭漂周星星

1.针对url传参或form表单传参

@InitBinder
public void initBinder(final WebDataBinder webdataBinder) {
    //去除首尾空格
    webdataBinder.registerCustomEditor(String.class, new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue(htmlUtils.htmlEscape(text, "UTF-8"));
        }
    });
}

2.针对Body的JSON格式传参

1.自定义string 反序列化实现

public final class JsonStringDeserializer extends JsonDeserializer<String> {

    @Override
    public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
        String text = jsonParser.getText();
        return HtmlUtils.htmlEscape(text, "UTF-8");
    }
}

2.配置反序列化类

@Configuration
public class BaseMvcConfig implements WebMvcConfigurer {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        MAppingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.registerModule(getSimpleModule());
        jackson2HttpMessageConverter.setObjectMapper(objectMapper);
        converters.add(0, jackson2HttpMessageConverter);
    }

    private SimpleModule getSimpleModule() {
        SimpleModule simpleModule = new SimpleModule();
        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
        //配置反序列化类
        simpleModule.addDeserializer(String.class, new JsonStringDeserializer());
        return simpleModule;
    }
}

顺便说一下,序列化的设置一定要把Long转成String。因为js对Long类型支持的精度不够,导致后端使用的Long传到前端丢失精度。这个是很大的坑。



Tags:xss注入   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
简单配置spring mvc,防止xss注入
1.针对url传参或form表单传参@InitBinderpublic void initBinder(final WebDataBinder webdataBinder) { //去除首尾空格 webdataBinder.registerCustomEditor(String...【详细内容】
2022-06-24  Search: xss注入  点击:(509)  评论:(0)  加入收藏
▌简易百科推荐
保护隐私,从微信朋友圈开始
在这个信息化高速发展的时代,微信已经成为了我们生活中不可或缺的一部分。无论是工作沟通、亲友联络,还是日常的消遣娱乐,微信都扮演着重要的角色。而微信朋友圈,更是成为了我们...【详细内容】
2024-04-08    松鼠宝贝  Tags:微信朋友圈   点击:(18)  评论:(0)  加入收藏
加密领域的热门概念和创新应用
在当下快速发展的加密货币领域,BTC Layer 2(二层)概念、比特币商业场景型的应用、DePIN以及AI领域的全球GPU算力调度网等项目备受关注,被视为具有巨大潜力的创新方向。让我们一...【详细内容】
2024-03-20  曜楠科技    Tags:加密   点击:(21)  评论:(0)  加入收藏
让隐私数据不再裸奔!一文掌握加密技术,让你的隐私高枕无忧
随着互联网的普及和数字化进程的加速,加密技术已经成为我们生活中不可或缺的一部分。从保护个人隐私到保障国家安全,加密技术都发挥着至关重要的作用。今天,我们就来一起盘点一...【详细内容】
2024-02-19  媺媺熊    Tags:隐私数据   点击:(10)  评论:(0)  加入收藏
人人都该懂密码学,通用密码学原理与应用实战|完结无密
来百度APP畅享高清图片//下栽のke:http://quangneng.com/4061/标题:人人都该懂密码学:通用密码学原理与应用实战在当今数字化的世界中,密码学已经成为了信息安全的核心。不论是...【详细内容】
2024-02-06  阿小白    Tags:密码学   点击:(52)  评论:(0)  加入收藏
笔记本电脑如何设置开机密码
在信息化时代,笔记本电脑已经成为我们工作、学习和生活中不可或缺的工具。然而,与此同时,信息安全问题也日益突出。为了保护个人隐私和重要数据,设置开机密码成为了必不可少的一...【详细内容】
2024-01-30  雨后海棠    Tags:开机密码   点击:(38)  评论:(0)  加入收藏
什么是密钥扩展?如何确保密码安全?
译者 | 陈峻审校 | 重楼为了访问自己的数字账户,我们通常需要用到密码或口令。不过,正如现实生活中开锁的钥匙可能并不总是牢靠一样,并非所有的密码都是安全的。为了加强在线防...【详细内容】
2023-12-22    51CTO  Tags:密码   点击:(95)  评论:(0)  加入收藏
SQL注入漏洞的检测及防御方法
SQL注入(SQL Injection)是一种广泛存在于Web应用程序中的严重安全漏洞,它允许攻击者在不得到授权的情况下访问、修改或删除数据库中的数据。这是一种常见的攻击方式,因此数据库...【详细内容】
2023-12-01  兰花豆说网络安全  微信公众号  Tags:SQL注入   点击:(124)  评论:(0)  加入收藏
网络安全秘籍:打造隐私防护墙,保卫您的个人信息!
随着互联网的普及,越来越多的个人信息被储存在网络上。这些信息包括我们的通讯地址、购物记录、银行账号等,一旦被黑客窃取,后果将不堪设想。那么,如何保护个人隐私免受网络攻击...【详细内容】
2023-11-21  白面知识铺    Tags:网络安全   点击:(200)  评论:(0)  加入收藏
在数字时代,如何确保您的个人数据安全
随着我们生活中越来越多的信息数字化,个人隐私保护成为一个不容忽视的重要话题。无论是网络购物、社交媒体还是在线银行,我们的大量个人数据都在网络上流动。那么,如何保护我们...【详细内容】
2023-10-30  万花筒娱圈    Tags:个人数据   点击:(280)  评论:(0)  加入收藏
密码的末路!谷歌将密钥设为所有用户的默认登录方式
作者丨Carly Page编译丨诺亚近日,谷歌宣布,密钥正在成为所有用户的默认登录方法。因此,密钥也被这家科技巨头吹捧为密码“终结的开始”。密钥是一种防网络钓鱼的密码替代品,允许...【详细内容】
2023-10-19    51CTO  Tags:密钥   点击:(238)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条