SpringMVC 过滤 Json 数据中的 XSS

2016-06-28 18:33:14 +08:00
 wysnylc

上午大神提示可以用 Jsoup 过滤,使用了之后过滤一般 XSS 和保留富文本没有问题。
但是现在还有 Json 格式的请求,然后参考>Spring 拦截器从 Request 中获取 Json 格式的数据写了个 filter ,成功的读到了 Json 。
但是一脸懵逼的不知道怎么改写 0.0 求大神指教蟹蟹

8070 次点击
所在节点    问与答
15 条回复
jhonRawls
2016-06-28 23:33:50 +08:00
如果用 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 可以在渲染或者响应输出的时候做,统一处理这样子的话 就不会漏掉
wysnylc
2016-06-29 08:39:42 +08:00
@jhonRawls 我找到的例子都是对输入过滤,所以就写了输入的。请问可以指点下输出过滤么 QAQ
wysnylc
2016-06-29 08:51:51 +08:00
@jhonRawls 第一篇文章和我现在的 filter 一模一样,但是不能过滤 json 的内容。</br>第二篇文章貌似讲的是输出过滤?好像并没有解决 requestbody 过滤的问题。
jhonRawls
2016-06-29 14:38:06 +08:00
http://ju.outofmemory.cn/entry/63726
这个是 response 可以过滤 ,我想 requestBody 应该也是一样的 拿到 json 属性 然后序列化成对象 这个要重写 spring mvc 转换 application/json 转换方法
wysnylc
2016-07-01 11:31:34 +08:00
@jhonRawls 这个我配置失败了,不知道什么问题。而且他这个过滤太死板,富文本会完全废掉。
有基于 SpringMVC4 的实例么,难道都是在 nginx 做的么
jhonRawls
2016-07-01 18:03:54 +08:00
富文本的话你前端可以做下过滤然后提交给后端,
另外一种的话 你可以不过滤特殊字符,在渲染的时候你转译一下,比如你用 freemarker 的话 你可以参考下这个文章
http://yshjava.iteye.com/blog/1870320
wysnylc
2016-07-01 18:21:46 +08:00
@jhonRawls 前端不安全,前端可以绕过。渲染转义不行,会把正常的标签也转没用。
wysnylc
2016-07-01 18:23:18 +08:00
@jhonRawls 实际上有方法过滤 <a href='http://www.open-open.com/jsoup/'>jsoup</a>可以白名单过滤。现在就是 json 不好过滤,并且没有发现什么 demo 可以参考。
cnlinjie
2016-07-05 08:46:45 +08:00
@wysnylc 同遇到问题,目前近况如何~
wysnylc
2016-07-26 10:51:43 +08:00
@jhonRawls 我现在把表单过滤好了, ResponseBody 也可以过滤。但是有一种尴尬的情况就是,如果是用的 json 提交的数据但是是正常的后台渲染的数据的时候, xss 就会成功触发。
我应该做 requestBody 的过滤还是 Response 的过滤呢?还是都做?没有思路呀 QAQ
wysnylc
2016-10-11 17:39:56 +08:00
@cnlinjie 现在已解决表单和 json 的 xss 过滤
@jhonRawls 感谢提点!
dreamflying3
2017-09-08 10:12:41 +08:00
@cnlinjie 在么,可以帮帮我么,我继承的 MappingJackson2HttpMessageConverter 这个类,不走子类的 read
wysnylc
2017-09-08 12:41:58 +08:00
@dreamflying3 断点确定是否真的没走,xml 中确定是否已经指定子类
dreamflying3
2017-10-19 10:01:19 +08:00
@wysnylc 已经解决了。谢谢
18732907626
2019-03-01 16:22:52 +08:00
@dreamflying3 我的跟你情况一样,也是不走子类,可以帮我么

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/288921

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX