最近通过同事的一次测试,正好发现了htmlparser的一处危险用法。姑且记录在博客里面,如果你恰好也用到了htmlpaser,可以检查一下自己的代码。
htmlparser(主页地址)是一个用的比较广泛的java解析html的库。
如下的代码使用会带来问题:
import org.htmlparser.Parser;
......
Parser parser = newParser(content);
......
使用parser的string参数类型的构造函数,如果其中的content可以被用户或者外界手工指定时,
当用户传入"../../...../etc/passwd"时就有可能读出其中的内容。
具体原因在于htmlparser调用了ConnectionManager这个类,其中
public URLConnection openConnection (String string)
throws
ParserException
{
final String prefix = "file://localhost";
......
给出了读本地文件的能力。
分享到:
相关推荐
META-INF/maven/org.htmlparser/htmlparser/pom.properties META-INF/maven/org.htmlparser/htmlparser/pom.xml org.htmlparser.Parser.class org.htmlparser.PrototypicalNodeFactory.class org.htmlparser.beans....
1. **创建自定义解析器**: 首先,我们需要继承Python的`HTMLParser`类,并重写其方法,如`handle_starttag`、`handle_endtag`和`handle_data`,以便在遇到HTML标签开始、结束或数据时执行特定操作。 2. **启动爬虫*...
1. **导入库**:首先需要将htmlparser1_6.jar添加到项目类路径中,以便在代码中使用HTMLParser的相关类和方法。 2. **创建解析器**:创建一个HTMLParser实例,然后设置解析选项,如是否忽略错误或使用特定的解析策略...
本篇将详细阐述HTMLParser的使用方法、功能以及提供的相关资源。 首先,`HTMLParser-2.0-SNAPSHOT-doc.zip`包含了HTMLParser的使用文档。这份文档通常包含API参考、教程、示例代码和用户指南,是学习和理解...
HTMLParser提供了多种方法来访问和操作解析树,比如`parseContent()`用于获取整个文档的节点列表,`visitAllNodesWith()`可以遍历所有节点并应用自定义的访问器,`getFirstNodeWithTag()`用于找到第一个特定标签的...
通过这个教程,开发者可以掌握HTMLParser的基本使用方法,从而有效地从网页中抓取和解析数据。实际应用中,HTMLParser常与网络请求库(如Apache HttpClient或OkHttp)结合使用,以获取远程网页内容,再进行后续的...
本项目名为"HTMLParser.net源代码HTMLParser.net使用demo",显然是一个包含示例代码的压缩包,用于展示如何在实际应用中使用HTMLParser.net。 HTMLParser.net的核心功能包括: 1. **HTML解析**:它能够将HTML字符...
### JAVA HtmlParser 使用实例详解 在Java开发过程中,解析HTML文档是一项常见的需求,尤其是在处理Web爬虫、数据抓取等应用场景时。`HtmlParser`库为开发者提供了一种简便的方式来解析HTML文档,并从中提取所需的...
`htmlparser.dll`是这个库的动态链接库文件,它包含了编译好的类和方法,可以直接在C#项目中引用以使用HTMLParser的功能。在C#项目中,我们可以通过添加对dll的引用来调用库中的方法,比如解析HTML字符串、查找特定...
开发者可以打开`AnalyzeHtml.sln`,编译并运行这两个项目,以了解HtmlParser的具体使用方法和实际效果。 四、应用实例 HtmlParser在多种场景下都有广泛的应用: 1. **数据抓取**:从网页中抓取特定信息,如产品...
4. 使用示例:在"HTMLParser使用详解-Node内容.doc"中,可能详细介绍了如何创建和配置解析器对象,设置解析事件处理器,以及如何通过遍历节点来提取或修改HTML内容。例如,可以使用`TagStart`事件捕获元素开始,`...
1. `public Parser ()`: 创建一个默认的Parser对象。 2. `public Parser (Lexer lexer, ParserFeedback fb)`: 使用自定义的Lexer和反馈机制创建Parser。 3. `public Parser (URLConnection connection, ...
htmlparser-1.2.1jar包下载htmlparser-1.2.1jar包下载
例如,你可以使用`.querySelector()`和`.querySelectorAll()`方法,它们接受一个CSS选择器字符串作为参数。 **注意事项** 虽然HtmlParser提供了强大的功能,但它并不完美。在处理某些复杂的HTML结构时,可能会遇到...
本文将深入探讨HTMLParser 1.6版本的功能、用途、使用方法以及其在IT领域的应用。 HTMLParser的核心功能是解析HTML文档,即使在面对结构不规则或者非标准的HTML代码时,也能有效地进行解析。它提供了灵活的事件驱动...
例如,你可以创建一个自定义的`NodeVisitor`来遍历整个HTML文档,或者使用`Parser`的`print`方法将HTML源码按照特定格式重写。 htmllexer.jar则是词法分析器,负责将HTML源代码分解为一个个标记(tokens)。`org....
5. **示例代码(Demo)**:在提供的文件中,可能包含一个或多个演示如何使用HTMLParser的示例。这些示例通常会展示如何初始化解析器、注册事件处理器、遍历DOM树或执行特定的HTML操作。 6. **项目构建配置**:`....
在本场景中,我们讨论如何使用HTMLParser库来创建一个基础的网络爬虫,以便从网页上抓取和分析数据。 首先,我们需要了解HTMLParser的基本用法。HTMLParser设计为易于使用,它提供了对HTML元素、属性和文本的访问,...