jsoup过滤特殊字符

最近我在做一个项目时,要展示一个网站摘要,但是出现了一些乱七八糟的代码,经过考究原来是特殊字符未进行过滤所导致的

后来我想到用jsoup来过滤,需要导入的jar包是jsoup-1.7.2.jar

该代码如下:

@Override
public String filterContent(final String content) {
final String text=content;
Document doc=Jsoup.parse(text.replaceAll("\"", ""));
return Jsoup.parse(doc.text()).text();
}

 

jsoup的介绍如下:

它可以解析和遍历一个html文档

如何解析一个HTML文档:

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);

 

 

其解析器能够尽最大可能从你提供的HTML文档来创见一个干净的解析结果,无论HTML的格式是否完整。比如它可以处理:

1---没有关闭的标签 (比如: <p>Lorem <p>Ipsum parses to <p>Lorem</p> <p>Ipsum</p>)

2---隐式标签 (比如. 它可以自动将 <td>Table data</td>包装成<table><tr><td>?)

3---创建可靠的文档结构(html标签包含head 和 body,在head只出现恰当的元素)

 

在Java开发中,我们经常需要将Java对象转换为JSON格式的字符串,并在网络传输或存储时使用。为了防止XSS攻击,我们可以在转换JSON字符串时对字符串中的特殊字符进行过滤。 下面是一个封装了XSS过滤的JSON工具类示例: ```java import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import org.jsoup.Jsoup; import org.jsoup.safety.Whitelist; public class XssJsonUtils { private static final ObjectMapper objectMapper = new ObjectMapper() .enable(SerializationFeature.INDENT_OUTPUT); /** * 将Java对象转换为JSON字符串并进行XSS过滤 * @param obj Java对象 * @return 过滤后的JSON字符串 */ public static String toJson(Object obj) throws JsonProcessingException { String json = objectMapper.writeValueAsString(obj); return xssFilter(json); } /** * 对输入字符串进行XSS过滤 * @param input 输入字符串 * @return 过滤后的字符串 */ public static String xssFilter(String input) { if (input == null || input.isEmpty()) { return input; } return Jsoup.clean(input, Whitelist.basic()); } } ``` 在上述代码中,我们封装了一个XssJsonUtils类,提供了toJson()方法用于将Java对象转换为JSON字符串,并在转换时进行XSS过滤。具体实现中,我们使用了Jackson库将Java对象转换为JSON字符串,然后对字符串中的特殊字符进行了过滤。 使用时,只需要在需要将Java对象转换为JSON字符串的地方调用XssJsonUtils.toJson()方法即可。例如: ```java import java.util.HashMap; import java.util.Map; public class MyController { @GetMapping("/data") public String getData() throws JsonProcessingException { Map<String, Object> data = new HashMap<>(); data.put("name", "<script>alert('hello')</script>"); data.put("age", 20); return XssJsonUtils.toJson(data); } } ``` 在上述代码中,我们将一个包含特殊字符的Map对象转换为JSON字符串,并在转换时进行了XSS过滤,可以防止XSS攻击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值