javascript - 大公司是怎么做富文本编辑器过滤方案的?
Jun 06, 2016 pm 08:41 PM
我看到了sf上有类似的问题,但是解决不了我心中的疑问,所以我在这儿说一下我的情况。
目前我正在做一个富文本编辑器的解决方案,不仅仅是考虑前端,还包括后端的过滤处理。
一般的富文本编辑器在前端是会有一定的过滤的,但众所周知在前端做XSS攻击的过滤肯定是不充分的,这很容易被绕过。
目前的解决方案
- 前端:使用CKEditor的BBCode插件,用户输入的内容都是BBCode的。
- 后端(PHP):将剩下还存在的html标签转译掉
目前解决方案的问题
如果用户直接从别的地方粘贴一段内容放到CKEditor的富文本编辑器中(在使用BBCode插件的状态下),会发现格式全都乱掉。这是因为BBCode本身的表现力肯定不如HTML,而且这个BBCode的插件也是有bug的。
请问一般成熟的企业是怎么做的?
- 百姓网是没有富文本编辑的
- 百度贴吧感觉上也不是存HTML的。
那像淘宝店铺、或者微信公众平台的编辑器。他们会通过一大堆复杂的过滤条件然后直接把过滤完的HTML存到数据库里吗?还是转成其他的格式保存?
补充一下:
我找到一个HTML Purifier
的PHP库,我不知道是否适合我的应用场景,它会不会太重了?有了解这个库的朋友的话,希望告知一下。
回复内容:
我看到了sf上有类似的问题,但是解决不了我心中的疑问,所以我在这儿说一下我的情况。
目前我正在做一个富文本编辑器的解决方案,不仅仅是考虑前端,还包括后端的过滤处理。
一般的富文本编辑器在前端是会有一定的过滤的,但众所周知在前端做XSS攻击的过滤肯定是不充分的,这很容易被绕过。
目前的解决方案
- 前端:使用CKEditor的BBCode插件,用户输入的内容都是BBCode的。
- 后端(PHP):将剩下还存在的html标签转译掉
目前解决方案的问题
如果用户直接从别的地方粘贴一段内容放到CKEditor的富文本编辑器中(在使用BBCode插件的状态下),会发现格式全都乱掉。这是因为BBCode本身的表现力肯定不如HTML,而且这个BBCode的插件也是有bug的。
请问一般成熟的企业是怎么做的?
- 百姓网是没有富文本编辑的
- 百度贴吧感觉上也不是存HTML的。
那像淘宝店铺、或者微信公众平台的编辑器。他们会通过一大堆复杂的过滤条件然后直接把过滤完的HTML存到数据库里吗?还是转成其他的格式保存?
补充一下:
我找到一个HTML Purifier
的PHP库,我不知道是否适合我的应用场景,它会不会太重了?有了解这个库的朋友的话,希望告知一下。
百度使用的是自家研制的UEditor
HTML Purifier可以的。
补充一下吧,上午答的有点草率。
HTML Purifier的确是可以用,但是的确如楼主所说,性能是个问题。
各个公司都有各自的解决方案,坊间虽然有很多过滤xss的方法,但是没那个是完全适合的。
其实如果是PHP的话,本身语言就有很好的函数可以用了, strip_tags,然后设定allowable_tags

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법
