加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么jsoup删除内联样式表?

发布时间:2020-12-15 04:17:10 所属栏目:Java 来源:网络整理
导读:我使用jsoup保护我的应用程序免受XSS攻击.我得到所有的输入参数,并在那上做Jsoup.clean.但我有一个问题. 它删除所有内联样式表!为什么?我在我的应用程序中有一部分,用户可以编写文本并将其作为公告发布.他/她通过TinyMCE写他/她的文本,并在用户文本中添加
我使用jsoup保护我的应用程序免受XSS攻击.我得到所有的输入参数,并在那上做Jsoup.clean.但我有一个问题.

它删除所有内联样式表!为什么?我在我的应用程序中有一部分,用户可以编写文本并将其作为公告发布.他/她通过TinyMCE写他/她的文本,并在用户文本中添加一些html和样式表.在下面你可以看到tinymce创建的示例文本:

用户输入:居中对齐文本
TinyMCE结果:< p style =“text-align:center;”>中心对齐文本< / p>
Jsoup.clean(text,Whitelist.relaxed())输出:< p>中心对齐文本< / p>

可以看到Jsoup删除标签样式.我怎么能说它不删除简单的CSS?
谢谢.

解决方法

默认情况下,Whitelist类会删除样式,但您可以使用addAttributes(“p”,“style”)轻松修改此行为并添加样式支持.

Whitelist.relaxed().addAttributes("p","style");

说明

这在清理时将元素p的属性样式设置为忽略.只有p的样式才会被删除!

验证码

只需复制粘贴此代码并从main调用.

public static void main(String[] args) {
    String text = "<p style="text-align: center;">Center Aligned Text</p>";
    String clean = Jsoup.clean(text,Whitelist.relaxed()
            .addAttributes("p","style"));
    System.out.println(clean);
}

结果

<p style="text-align: center;">Center Aligned Text</p>

依赖

org.jsoup:jsoup:1.7.3

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读