`

jsoup-消除不受信任的HTML (来防止XSS攻击)

 
阅读更多

消除不受信任的HTML (来防止XSS攻击)

问题

在做网站的时候,经常会提供用户评论的功能。有些不怀好意的用户,会搞一些脚本到评论内容中,而这些脚本可能会破坏整个页面的行为,更严重的是获取一些机要信息,此时需要清理该HTML,以避免跨站脚本cross-site scripting攻击(XSS)。

方法

使用jsoup HTML Cleaner 方法进行清除,但需要指定一个可配置的 Whitelist

String unsafe = 
  "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
String safe = Jsoup.clean(unsafe, Whitelist.basic());
// now: <p><a href="http://example.com/" rel="nofollow">Link</a></p>

说明

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攻击,还可以限制用户可以输入的标签范围。

参见

  • 参阅XSS cheat sheet ,有一个例子可以了解为什么不能使用正则表达式,而采用安全的whitelist parser-based清理器才是正确的选择。
  • 参阅Cleaner ,了解如何返回一个 Document 对象,而不是字符串
  • 参阅Whitelist,了解如何创建一个自定义的whitelist
  • nofollow 链接属性了解
分享到:
评论

相关推荐

    jsoup-1.15.3.jar

    jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jarjsoup-...

    jsoup-1.14.3-API文档-中文版.zip

    赠送jar包:jsoup-1.14.3.jar; 赠送原API文档:jsoup-1.14.3-javadoc.jar; 赠送源代码:jsoup-1.14.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.14.3.pom; 包含翻译后的API文档:jsoup-1.14.3-javadoc-API...

    jsoup-1.10.3-API文档-中文版.zip

    赠送jar包:jsoup-1.10.3.jar; 赠送原API文档:jsoup-1.10.3-javadoc.jar; 赠送源代码:jsoup-1.10.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.10.3.pom; 包含翻译后的API文档:jsoup-1.10.3-javadoc-API...

    jsoup-1.11.2.rar

    jsoup-1.11.2.jar jsoup-1.11.2-javadoc.jar jsoup-1.11.2-sources.jar JsoupXpath-0.3.2.jar

    jsoup-1.11.2.jar工具类包.rar

    jsoup-1.11.2.jar JsoupXpath-0.3.2.jar jsoup-1.11.2-sources.jar jsoup-1.11.2-javadoc.jar 解析读取xml或html文档的工具类

    jsoup-1.11.3-API文档-中文版.zip

    赠送jar包:jsoup-1.11.3.jar; 赠送原API文档:jsoup-1.11.3-javadoc.jar; 赠送源代码:jsoup-1.11.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.11.3.pom; 包含翻译后的API文档:jsoup-1.11.3-javadoc-API...

    jsoup-1.6.2.jar

    jsoup-1.6.2.jar jar包 jsoup-1.6.2.jar jar包 jsoup-1.6.2.jar jar包 jsoup-1.6.2.jar jar包

    jsoup-1.14.3-API文档-中英对照版.zip

    赠送jar包:jsoup-1.14.3.jar; 赠送原API文档:jsoup-1.14.3-javadoc.jar; 赠送源代码:jsoup-1.14.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.14.3.pom; 包含翻译后的API文档:jsoup-1.14.3-javadoc-API...

    jsoup-jsoup-1.6.1.zip

    jsoup是一款Java的HTML解析器,主要用来对HTML解析。其解析器能够尽最大可能从你提供的HTML文档来创见一个干净的解析结果,无论HTML的格式是否完整。

    jsoup-1.11.3-API文档-中英对照版.zip

    赠送jar包:jsoup-1.11.3.jar; 赠送原API文档:jsoup-1.11.3-javadoc.jar; 赠送源代码:jsoup-1.11.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.11.3.pom; 包含翻译后的API文档:jsoup-1.11.3-javadoc-API...

    jsoup-1.10.3.jar

    jsoup-1.10.3.jar jsoup-1.10.3.jarjsoup-1.10.3.jarjsoup-1.10.3.jar

    jsoup-jsoup-1.12.2.zip

    jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。

    jsoup-1.11.2.jar JsoupXpath-0.3.2

    java的两个包 JsoupXpath-0.3.2 jsoup-1.11.2 解析xml

    jsoup-1.8.1.jar

    jsoup-1.8.1.jar

    jsoup-1.13.1-sources.jar

    jsoup-1.13.1-sources.jar

    jsoup-1.9.2.rar

    jsoup-1.9.2.rarjsoup-1.9.2.rarjsoup-1.9.2.rarjsoup-1.9.2.rar

    jsoup-1.8.1-javadoc.jar

    jsoup-1.8.1-javadoc.jar jsoup文档

    jsoup-1.7.2-sources.jar

    jsoup-1.7.2-sources.jar ,官网下载的,欢迎免费下载评价。

    html解析利器 jsoup-1.7.1-sources.jar

    java开源工具 html解析利器 jsoup-1.7.1-sources.jar

Global site tag (gtag.js) - Google Analytics