有效预防xss_使用Jsoup防御XSS攻击

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

使用Jsoup可以有效的过滤不安全的代码。Jsoup使用白名单的机制来预防XSS攻击,比如白名单中规定只允许标签的存在,那么其他标签都会被过滤掉。

常见的XSS攻击

比如页面的某个表单允许用户输入任意内容,当某个调皮的用户输入如下内容:

2dc67e171c34e5851e9f47cd2ee94a44.png

保存后,你会发现页面文字都变成了红色!

ee34fe79aa516528adc8f7c9ce63a270.png

或者输入,保存后页面将弹窗10次!

引入Jsoup

使用Maven构建一个简单的Spring Boot项目,在pom中引入:

12345org.jsoup jsoup 1.9.2

JsoupUtil

创建一个JsoupUtil工具类:

import java.io.FileNotFoundException;import java.io.IOException;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.safety.Whitelist;/** * Xss过滤工具 * */public class JsoupUtil { private static final Whitelist whitelist = Whitelist.basicWithImages(); /* * 配置过滤化参数,不对代码进行格式化 */ private static final Document.OutputSettings outputSettings = new Document.OutputSettings().prettyPrint(false); static { /* * 富文本编辑时一些样式是使用style来进行实现的 比如红色字体 style="color:red;" 所以需要给所有标签添加style属性 */ whitelist.addAttributes(":all
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值