我正在编写一个基于servlet的应用程序,我需要在其中提供消息传递系统.我匆忙,所以我选择CKEditor来提供编辑功能,我目前直接在显示所有消息的网页中插入生成的html(消息存储在MySQL数据库中,fyi).CKEditor已经基于白名单过滤HTML,但是用户仍然可以使用POST请求注入恶意代码,因此这还不够.
一个好的库已经存在,可以通过过滤HTML标签来防止XSS攻击,但它是用PHP编写的:HTML Purifier
那么,是否有类似的成熟库可以在Java中使用?基于白名单的简单字符串替换似乎不够,因为我也想过滤格式错误的标签(这可能会改变显示消息的页面的设计).
如果没有,那我该怎么办?XML解析器似乎有点过分.
注意:在SO上有很多关于此的问题,但所有答案都涉及过滤所有HTML标记:我想保留有效的格式化标记.
有人可以告诉我一个简单的方法在Java中使用正则表达式在html文件中找到href和src标签吗?
然后,如何获取与标记关联的URL?
谢谢你的任何建议.
我有这个HTML输入:
<font size="5"><p>some text</p>
<p> another text</p></font>
Run Code Online (Sandbox Code Playgroud)
我想使用正则表达式删除HTML标记,以便输出为:
some text
another text
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议如何用正则表达式做到这一点?
我想用Java验证HTML代码.
像这样:
HTMLValidator.validateHTML("aaa<b>bbb<b>");
// Returns false, because tag <b> is not closed
Run Code Online (Sandbox Code Playgroud)
有哪些Java库可以做到这一点?
大家好我正在编写一个简单的网页抓取脚本,需要连接到网页,自动跟踪302重定向,给我链接的最终网址,让我抓住HTML.
做这些事情的首选java lib是什么?
谢谢
我试图通过URLConnection获取整个WebPage.
最有效的方法是什么?
我已经这样做了:
URL url = new URL("http://www.google.com/");
URLConnection connection;
connection = url.openConnection();
InputStream in = connection.getInputStream();
BufferedReader bf = new BufferedReader(new InputStreamReader(in));
StringBuffer html = new StringBuffer();
String line = bf.readLine();
while(line!=null){
html.append(line);
line = bf.readLine();
}
bf.close();
Run Code Online (Sandbox Code Playgroud)
html包含整个HTML页面.
我需要从java提交一个aspx页面.我正在使用HTTp Client以及HttpUrlConnection这样做.调用页面很简单,但我需要设置一个单选按钮以检查状态,然后将输入字段的值设置为我要搜索的内容并发布页面.
我在HttpUrlConnection上使用了post requestmethod,并尝试使用值作为编码字符串设置输入字段的值 - 不知道这是否是正确的方法.另外我不知道如何设置单选按钮状态进行检查
所以你们可以帮助我如何完成这项任务.
任何帮助将受到高度赞赏
谢谢
马诺
我正在寻找TagSoup和jTidy库的文档(如果可能的话,正式文档).
我想利用这个库来操纵HTML"tagsoup"文件,其中包括与(HTML,XHTML或者HTML5)标签HTML之间的混合不同的命名空间XML标记.
我已经测试HTMLCleaner,NekoHTML和杰里科,但我不为jTidy和TagSoup找到文档,除了最简单的例子来清除文件.
我需要有关操纵内容,替换标签,提取信息等的文档......
谢谢
注意:测试完所有选项后,我使用了StAX/Woodstox:
我需要title从html文件中提取段落(如StackOverflow).
我可以在Java中使用正则表达式来提取我需要的字段,但我必须decode获得所获得的字段.
例
字段提取:
Paging Lucene's search results (with **;** among **'** and **s**)
Run Code Online (Sandbox Code Playgroud)
解码后的字段:
Paging Lucene's search results
Run Code Online (Sandbox Code Playgroud)
java中是否有允许我转换这些html代码的类?
我从java httpurlconnection获得了一些代码来切断html,而且我几乎是从Java中的网站获取html的代码.除了我无法使此代码使用的一个特定网站:
我想从这个网站获取HTML:
http://www.geni.com/genealogy/people/William-Jefferson-Blythe-Clinton/6000000001961474289
但我一直在抓垃圾角色.虽然它适用于任何其他网站,如http://www.google.com.
这是我正在使用的代码:
public static String PrintHTML(){
URL url = null;
try {
url = new URL("http://www.geni.com/genealogy/people/William-Jefferson-Blythe-Clinton/6000000001961474289");
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
HttpURLConnection connection = null;
try {
connection = (HttpURLConnection) url.openConnection();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6");
try {
System.out.println(connection.getResponseCode());
} catch (IOException e) {
// …Run Code Online (Sandbox Code Playgroud)