首页 > Java > Jsoup在简单防御XSS攻击和网络爬虫的简单应用

Jsoup在简单防御XSS攻击和网络爬虫的简单应用

跨站攻击一直是web安全的一大问题,稍有不慎就会中招,各种防不胜防,今天在网上闲逛,发现一个第三方JAR不仅可以简单防御还可以爬取网页,所以写一篇小文以记之,也供有需要的人参考。
预防跨站攻击代码如下:


    @Test
    public void testJsoup() {
        String unsafe = "<p><a href='http://example.com/' onclick='stealCookies()'>Link,<alert>0</alert></a></p>";
        String safe = Jsoup.clean(unsafe, Whitelist.basic());
        System.out.println(safe);
    }

其中 unsafe 就是用户提交的数据,其中包含 onclick 和 alert 可能会有害,需要过滤,而 Whitelist.basic() 则是过滤规则,safe 就是过滤后的安全数据。

在网络爬虫方面,曾听北京尚学堂马士兵老师讲过一次正则表达式的简单应用:抓取网页上的邮箱地址,有很多人记不住,但有了这个第三方工具,则轻松很多,他可以根据一个URL直接去抓取,省了不少事,猜测内部也是用正则实现的。
网络爬虫代码如下:


	@Test
    public void testSpider() {

        String url = "http://www.rijiben.com/";

        Document doc = null;
        try {
            doc = Jsoup.connect(url).get();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (null != doc) {
            Elements listrens = doc.getElementsByAttributeValue("class", "listren");
            for (Element listren : listrens) {
                String text = listren.select("li").select("a").html();
                System.out.println(text);
            }
        } else {
            System.err.println("网络出异常!");
        }
    }

这是抓取日记本上面,历史上的今日的例子,老夫打算将来用到自己的微信公众号上面,怎么样,是不是很简单?

详细参考Jsoup的文档:http://www.open-open.com/jsoup/

2015-06-19 补充说明:

jsoup只能抓取普通方式生产的HTML页面,如果该页面是由ajax生成则不行,此时可以用HttpUnit,具体例子就不多说了

分享到:
作 者: BridgeLi,http://www.bridgeli.cn/
原文链接:https://www.bridgeli.cn/archives/81
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
分类: Java 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.