请教文章内容是如何保存的?

就像我现在在这里写的内容,存入数据表里面的话,是将整个html存入吗?如果存入html的话,再输出到页面应该会有安全问题。但是不保存整个html,格式怎么办?

评论区

JFinal

2016-10-11 20:58

在保存之前,用 Jsoup 这个工具,过滤掉一些不需要的内容,非常容易,一行代码的事,大致如下:
1:Jsoup.clean(content, Whitelist.relaxed()),过滤得比较 relaxed 宽松,li、h1、p、img 等等会被保留
2:Jsoup.clean(content, Whitelist.basicWithImages()),只保留基本的标记与图片标记
其它方法自己摸索一下,写个工具类,创建几个固定的过滤方法,例如 JsoupKit.filterContent(...)、JsoupKit.filterTitle(...) 基本就可以了

JFinal

2016-10-11 21:01

Jsoup 采用白名单的方式过滤,只有在白名单之内指定过的标记才会被保留,其它会全部被过滤掉

nbjgl

2016-10-11 21:02

img的src如果不过滤的话,src也可以做文章的吧……

nbjgl

2016-10-11 21:05

而且我配置的是Jsoup.clean(content, Whitelist.relaxed())的过滤方式,但是img的src都过滤没了……

nbjgl

2016-10-11 21:08

@jFinal Jsoup.clean(content, Whitelist.relaxed())这个会过滤掉img的src,这个怎么办?

JFinal

2016-10-11 21:13

自定义一个满足自己要求的白名单即可,以下是 jfinal 社区的代码,在 Jsoup 原有的 Whitelist.relaxed() 白名单基础上添加了一些额外的白名单,注意对于 a 的 href 很有用,否则会过滤掉 a 标签的 target属性:
static final Whitelist myWhiteList = createContentWhitelist();
Whitelist createContentWhitelist() {
return Whitelist.relaxed()
.removeProtocols("a", "href", "ftp", "http", "https", "mailto")
.removeProtocols("img", "src", "http", "https")
// 官方默认会将 target 给过滤掉
.addAttributes("a", "href", "title", "target")
// 在 Whitelist.relaxed() 之外添加额外的白名单规则
.addTags("div", "span", "embed", "object", "param")
.addAttributes(":all", "style", "class", "id", "name")
.addAttributes("object", "width", "height", "classid", "codebase")
.addAttributes("param", "name", "value")
.addAttributes("embed", "src", "quality", "width", "height", "allowFullScreen", "allowScriptAccess", "flashvars", "name", "type", "pluginspage");
}

然后用的时候这样:Jsoup.clean(content, myWhiteList );

nbjgl

2016-10-11 21:19

@JFinal Whitelist.relaxed().removeProtocols("a", "href", "ftp", "http", "https", "mailto") …… 没有removeProtocols()这个方法啊

JFinal

2016-10-11 21:21

我用的 jsoup 1.9.2,注意下版本

nbjgl

2016-10-11 21:32

你的回答 完美的解决了我的问题 真牛~

JFinal

2016-10-11 21:33

@nbjgl jfinal 新社区不是闹着玩的,必将打造成极其专注的极速开发社区,提升开发效率、降低开发成本、提升开发体验

JFinal

2016-10-11 21:34

@nbjgl 前面只是公布了一点点社区源代码,逐步会有更有价值的代码分享出来

nbjgl

2016-10-11 21:39

期待期待~~~~

热门反馈

扫码入社