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 清理相关推荐

  1. Jsoup介绍||​​​​​​​jsoup解析url || Jsoup解析字符串||​​​​​​​Jsoup解析文件

    Jsoup 抓取到页面之后,还需要对页面进行解析.可以使用字符串处理工具解析页面,也可以使用正则表达式,但是这些方法都会带来很大的开发成本,所以我们需要使用一款专门解析html页面的技术. jsoup ...

  2. jsoup获得css,Jsoup代码解读之五-实现一个CSS Selector

    Jsoup代码解读之七-实现一个CSS Selector 当当当!终于来到了Jsoup的特色:CSS Selector部分.selector也是我写的爬虫框架webmagic开发的一个重点.附上一张s ...

  3. jsoup教程_3 Jsoup 讲解

    项目源代码 https://gitee.com/fakerlove/jsoup 文章目录 3. Jsoup 讲解 3.1 解析Url 引入依赖 测试 3.2 解析字符串 3.3 解析文件 3.4 使用 ...

  4. android jsoup 课程表,使用jsoup爬取数据实现android课程表

    说明:只是爬虫的一个实现案例,所以没有多做功能,只做了登录跟课表功能,课表有修改周次,单击课程显示课程详细信息等功能. 开发平台:Android Studio 界面 使用TimetableView a ...

  5. jsoup 去除html标签,如何使用jsoup取消注释html标签

    Kai Sternad.. 7 对的,这是可能的.以下是解决此问题的一种方法: 查找所有评论节点 对于每个注释,提取数据属性 在当前注释节点之后插入包含数据的新节点 删除注释节点 看看这段代码: pu ...

  6. android jsoup简书,jsoup爬虫简书首页数据做个小Demo

    昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固,比如java反射注解,知道一点就是说不出来,很尴尬... 生命不止,学习不止啊 之前那个项目 Q ...

  7. java jsoup 网络爬虫 jsoup解析html Java爬虫 Jsoup爬虫 jsoup例子

    java jsoup 网络爬虫 java jsoup 网络爬虫 学习例子(一)抓取豆瓣电影名称+推荐星级 java jsoup 网络爬虫 学习例子(二)只抓取豆瓣电影5星(力荐)电影名称 java j ...

  8. android jsoup简书,Jsoup学习及使用

    * Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容. 它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操 ...

  9. Jsoup学习之Jsoup类

    Jsoup类 一.类结构 java.lang.Object org.jsoup.Jsoup public classJsoup extends

最新文章

  1. java向另一activity输入_Android中调用另一个Activity并返回结果-以模拟选择头像功能为例...
  2. 怎么修改服务器上的cpt文件,DELL-服务器-RAID-配置详解(28页)-原创力文档
  3. 应用市场中包名(package name)的唯一性
  4. 获得当前字符串的宽度
  5. 运输层课后第33题解析
  6. hdu1247Hat’s Words(trie树)
  7. 2018-3-7 色彩的一些知识
  8. java xlsx怎么转换成excel格式_pdf文件怎么转换成html网页格式?用什么方法来转换?...
  9. java中ant_java ant使用详解
  10. 烦人的 1KB 1KB文件夹快捷方式病毒专杀
  11. 洛谷 P3387(缩点后+处理 )
  12. 魅族人看魅族:我亲历的魅族发布会
  13. JAVA设计模式之备忘录模式
  14. 转ARM 指令 详解
  15. 揭秘“短视频创业”:一年亏50万,一个人就是一支团队
  16. 武汉本地三大门户网站的分析和比较!
  17. 新买的计算机如何检查,新买的笔记本要做哪些检测? 这些你一定要知道
  18. Oracle 数据字典查询
  19. 计算机如何打开无线网络适配器,电脑WIFI网络适配器卡怎么启用
  20. SQL Server 中4个系统数据库,Master、Model、Msdb、Tempdb

热门文章

  1. expect实现oscp openvpn账号密码自动连接
  2. TCP 协议中的 Window Size与吞吐量
  3. 逆向分析系列——常见的脱壳工具
  4. 预答辩主要提出了以下几点
  5. 计算机是怎样跑起来的(1)
  6. 基于ubuntu使用ovs实现容器网络隔离
  7. 启明云端分享:1.54寸彩屏与按摩椅的智慧碰撞
  8. 1、什么是压缩技术,起源于什么时候?
  9. Linux基础:日志管理
  10. Google Play登录SDK接入