项目部署后发现,当大数据提交后,后端收不到前端请求,就查了下后台,发现是被waf给拦截掉了,原因是里面有一些特殊的字符,所以waf就禁止请求接入。
解决方案:就是将前端数据提交之前,使用安全的编码规则将数据编排,进入后端后以同样的规则解码,我选的是Base64
在部署到生产环境后,发现当数据接入之后,后端报异常:java.lang.IllegalArgumentException: Illegal base64 character d
原因:因为生产环境中实际运行并不跟我的case一致,生产我们是接入合作机构的base64数据进行解码,但是对方用的不是java8的Base64编码,于是发生了异常!
解决方法:
Base64.getDecoder().decode() 修改为 Base64.getMimeDecoder().decode()
参考:https://blog.csdn.net/kevin_mails/article/details/87878601#commentBox