直接将html代码存到数据库会有哪些弊端以及现在如今将编辑器输入的文本保存到数据库的方式

资讯大佬个问题,
第一: 如果直接将html代码存入到数据库会有什么弊端,
第二: 将输入的文本进行类似本站编辑器的格式处理,再存到数据库, 和将输入的文本在后端进行转化(比如转成16进制字符等等)这种操作, 各有什么优缺点

阅读 4.9k
2 个回答

为什么需要进行转化?基本都是直接存储,但是弊端是很明显的,富文本而言会有样式问题,会在不同尺寸的设备上显示很怪异,因为很多富文本编辑器都还是按照 px 作为元素单位进行存储的,展示的时候也会受到这些的影响,还不容易编辑,切换编辑工具就会存在问题,偶尔还存在格式错误,样式冲突等问题,当然,富文本因为直接是 HTML ,具有编程能力的人可以自定义出好看的样式(因为富文本编辑出来的大多都是内联样式,所以大部分时候会覆盖掉外部的 css 样式,这也是不太号的)。

像本站使用的就是 markdown 编辑器,在渲染时在进行转码为 HTML,编辑时结构也很清晰,当然,这是 markdown 的功劳。

markdown 同时也是支持 HTML 标签的,因为它本来就会被渲染成 HTML 然后展示,只是为了安全,一些渲染时会过滤掉不安全的标签。

markdown 另外的优势就是更加节省空间,而且就算不渲染可读性也比较高(虽然没有富文本那样直观)。

首先要明确一点的是,如果从安全角度出发,存储时,不用太过担心,但是要担心渲染时,因为你需要确保没有恶意的标签,造成安全漏洞比如(XSS)。

直接存 HTML ,会占用较大空间,并且样式单一,因为在编辑时就确定了,后续想改就必须要修改内容。

而 markdown 则可以自定义样式,而不需要去修改原内容,并且相比于 HTML,更加节约空间,但是需要一定的学习门槛。

对html和css样式进行过滤后直接存数据库,注意最好使用longText类型,因为网页内容多的话text类型最大65535字节不见得存的下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题