上午大神提示可以用 Jsoup 过滤,使用了之后过滤一般 XSS 和保留富文本没有问题。
但是现在还有 Json 格式的请求,然后参考>Spring 拦截器从 Request 中获取 Json 格式的数据写了个 filter ,成功的读到了 Json 。
但是一脸懵逼的不知道怎么改写 0.0
求大神指教蟹蟹
1
jhonRawls 2016-06-28 23:33:50 +08:00 1
如果用 request.getparam 之类的可以谷歌下 spring mvx filter xss 这个文章
http://lawrence-zxc.github.io/2012/11/26/spring-mvc-xss/ 还有一种你是 requestbody 这种的话上面就不适合了 你需要改写你可以看下这个文章 http://stackoverflow.com/questions/25403676/initbinder-with-requestbody-escaping-xss-in-spring-3-2-4 反正不懂的多百度 百度不到的 多谷歌 用英文的关键词就行了 其实 xss 可以在渲染或者响应输出的时候做,统一处理这样子的话 就不会漏掉 |
3
wysnylc OP @jhonRawls 第一篇文章和我现在的 filter 一模一样,但是不能过滤 json 的内容。</br>第二篇文章貌似讲的是输出过滤?好像并没有解决 requestbody 过滤的问题。
|
4
jhonRawls 2016-06-29 14:38:06 +08:00 1
http://ju.outofmemory.cn/entry/63726
这个是 response 可以过滤 ,我想 requestBody 应该也是一样的 拿到 json 属性 然后序列化成对象 这个要重写 spring mvc 转换 application/json 转换方法 |
5
wysnylc OP @jhonRawls 这个我配置失败了,不知道什么问题。而且他这个过滤太死板,富文本会完全废掉。
有基于 SpringMVC4 的实例么,难道都是在 nginx 做的么 |
6
jhonRawls 2016-07-01 18:03:54 +08:00 1
富文本的话你前端可以做下过滤然后提交给后端,
另外一种的话 你可以不过滤特殊字符,在渲染的时候你转译一下,比如你用 freemarker 的话 你可以参考下这个文章 http://yshjava.iteye.com/blog/1870320 |
8
wysnylc OP @jhonRawls 实际上有方法过滤 <a href='http://www.open-open.com/jsoup/'>jsoup</a>可以白名单过滤。现在就是 json 不好过滤,并且没有发现什么 demo 可以参考。
|
10
wysnylc OP @jhonRawls 我现在把表单过滤好了, ResponseBody 也可以过滤。但是有一种尴尬的情况就是,如果是用的 json 提交的数据但是是正常的后台渲染的数据的时候, xss 就会成功触发。
我应该做 requestBody 的过滤还是 Response 的过滤呢?还是都做?没有思路呀 QAQ |
12
dreamflying3 2017-09-08 10:12:41 +08:00
@cnlinjie 在么,可以帮帮我么,我继承的 MappingJackson2HttpMessageConverter 这个类,不走子类的 read
|
13
wysnylc OP @dreamflying3 断点确定是否真的没走,xml 中确定是否已经指定子类
|
14
dreamflying3 2017-10-19 10:01:19 +08:00
@wysnylc 已经解决了。谢谢
|
15
18732907626 2019-03-01 16:22:52 +08:00
@dreamflying3 我的跟你情况一样,也是不走子类,可以帮我么
|