jsoup 去除html,Jsoup HTML 清理
1 消除不受信任的HTML (防止XSS攻击)
在做网站的时候,经常会提供用户评论的功能。有些不怀好意的用户,会搞一些脚本到评论内容中,而这些脚本可能会破坏整个页面的行为,更严重的是获取一些机要信息,此时需要清理该HTML,以避免跨站脚本cross-site scripting攻击(XSS)。 使用jsoup HTML Cleaner 方法进行清除,但需要指定一个可配置的 Whitelist。
String unsafe = "
Link
";
String safe = Jsoup.clean(unsafe, Whitelist.basic());
// now:
Link
说明:
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。所以我们经常只让用户输入纯文本的内容,但这样用户体验就比较差了。
一个更好的解决方法就是使用一个富文本编辑器WYSIWYG如CKEditor 和 TinyMCE。这些可以输出HTML并能够让用户可视化编辑。虽然他们可以在客户端进行校验,但是这样还不够安全,需要在服务器端进行校验并清除有害的HTML代码,这样才能确保输入到你网站的HTML是安全的。否则,攻击者能够绕过客户端的JavaScript验证,并注入不安全的HMTL直接进入您的网站。
jsoup的whitelist清理器能够在服务器端对用户输入的HTML进行过滤,只输出一些安全的标签和属性。
jsoup提供了一系列的Whitelist基本配置,能够满足大多数要求;但如有必要,也可以进行修改,不过要小心。这个cleaner非常好用不仅可以避免XSS攻击,还可以限制用户可以输入的标签范围。jsoup 使用一个 Whitelist 类用来对 HTML 文档进行过滤,该类提供几个常用方法:
操作
含义
none()
只允许包含文本信息
basic()
允许的标签包括:a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul, 以及合适的属性
simpleText()
只允许 b, em, i, strong, u 这些标签
basicWithImages()
在 basic() 的基础上增加了图片
relaxed()
这个过滤器允许的标签最多,包括:a, b, blockquote, br, caption, cite, code, col, colgroup, dd, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, u, ul
如果这五个过滤器都无法满足你的要求呢,例如你允许用户插入 flash 动画,没关系,Whitelist 提供扩展功能,例如 whitelist.addTags("embed","object","param","span","div"); 也可调用 addAttributes 为某些元素增加属性。
jsoup 去除html,Jsoup HTML 清理相关推荐
- Jsoup介绍||jsoup解析url || Jsoup解析字符串||Jsoup解析文件
Jsoup 抓取到页面之后,还需要对页面进行解析.可以使用字符串处理工具解析页面,也可以使用正则表达式,但是这些方法都会带来很大的开发成本,所以我们需要使用一款专门解析html页面的技术. jsoup ...
- jsoup获得css,Jsoup代码解读之五-实现一个CSS Selector
Jsoup代码解读之七-实现一个CSS Selector 当当当!终于来到了Jsoup的特色:CSS Selector部分.selector也是我写的爬虫框架webmagic开发的一个重点.附上一张s ...
- jsoup教程_3 Jsoup 讲解
项目源代码 https://gitee.com/fakerlove/jsoup 文章目录 3. Jsoup 讲解 3.1 解析Url 引入依赖 测试 3.2 解析字符串 3.3 解析文件 3.4 使用 ...
- android jsoup 课程表,使用jsoup爬取数据实现android课程表
说明:只是爬虫的一个实现案例,所以没有多做功能,只做了登录跟课表功能,课表有修改周次,单击课程显示课程详细信息等功能. 开发平台:Android Studio 界面 使用TimetableView a ...
- jsoup 去除html标签,如何使用jsoup取消注释html标签
Kai Sternad.. 7 对的,这是可能的.以下是解决此问题的一种方法: 查找所有评论节点 对于每个注释,提取数据属性 在当前注释节点之后插入包含数据的新节点 删除注释节点 看看这段代码: pu ...
- android jsoup简书,jsoup爬虫简书首页数据做个小Demo
昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固,比如java反射注解,知道一点就是说不出来,很尴尬... 生命不止,学习不止啊 之前那个项目 Q ...
- java jsoup 网络爬虫 jsoup解析html Java爬虫 Jsoup爬虫 jsoup例子
java jsoup 网络爬虫 java jsoup 网络爬虫 学习例子(一)抓取豆瓣电影名称+推荐星级 java jsoup 网络爬虫 学习例子(二)只抓取豆瓣电影5星(力荐)电影名称 java j ...
- android jsoup简书,Jsoup学习及使用
* Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容. 它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操 ...
- Jsoup学习之Jsoup类
Jsoup类 一.类结构 java.lang.Object org.jsoup.Jsoup public classJsoup extends
最新文章
- java向另一activity输入_Android中调用另一个Activity并返回结果-以模拟选择头像功能为例...
- 怎么修改服务器上的cpt文件,DELL-服务器-RAID-配置详解(28页)-原创力文档
- 应用市场中包名(package name)的唯一性
- 获得当前字符串的宽度
- 运输层课后第33题解析
- hdu1247Hat’s Words(trie树)
- 2018-3-7 色彩的一些知识
- java xlsx怎么转换成excel格式_pdf文件怎么转换成html网页格式?用什么方法来转换?...
- java中ant_java ant使用详解
- 烦人的 1KB 1KB文件夹快捷方式病毒专杀
- 洛谷 P3387(缩点后+处理 )
- 魅族人看魅族:我亲历的魅族发布会
- JAVA设计模式之备忘录模式
- 转ARM 指令 详解
- 揭秘“短视频创业”:一年亏50万,一个人就是一支团队
- 武汉本地三大门户网站的分析和比较!
- 新买的计算机如何检查,新买的笔记本要做哪些检测? 这些你一定要知道
- Oracle 数据字典查询
- 计算机如何打开无线网络适配器,电脑WIFI网络适配器卡怎么启用
- SQL Server 中4个系统数据库,Master、Model、Msdb、Tempdb