一.场景
进入页面,富文本编辑框里回显这条新闻内容,如下图, 然后可以在富文本编辑框里对它实现再编辑,编辑之后将html代码提交保存到后台数据库。可以点击详情页进行查看。
出现问题:在提交到后台controller时, 莫名被过滤了很多东西, 包括CSS、class等,只剩下文本内容了,哇呀呀!
二.解决
只需一段代码即可搞定,如图:
默认防止XSS攻击是开启的,我们只需要将排除的链接添加到这里就可以了
该方法是防止XSS攻击的后端处理方式,目的是防止js等恶意代码直接被存储到数据库中。所以我们存储到后台时就只剩下div了。
话说回来,在实际生产环境中,恶意代码存储到数据库中的后果是什么呢,下次有用户进入该网站,服务器返回给前台大量数据的同时,恶意代码也被返回并执行,那最终导致用户的Cookie等个人信息被泄露。所以,如果后端不进行任何过滤处理显然是不安全的。