转: CKEditor/CKFinder升级心得
2012-04-27 14:29
267 查看
CKEditor/CKFinder升级心得
这几天把一个旧项目中的fckeditor升级为ckeditor 3.2 + ckfinder 1.4.3 组合,下面是一些升级心得:一、CKFinder的若干问题
1.单独使用
ckfinder从原fckeditor分离出来以后可以单独使用,通常我习惯于在工具栏中添加ckfinder.dll,这样以后要使用ckfinder直接从工具箱拖出来即可.
拖到页面中后,会形成这样一个控件实例:
?
修改ckfinder的源文件,找到Connector\CommandHandlers\FileUploadCommandHandler.cs这个文件,定位到:
?
?
3.上传安全问题
3.1 跟fckeditor类似,默认情况下ckfinder是不允许上传的,找到config.ascx这个文件,定位到
?
?
3.2 文件扩展名校验
默认情况下,ckfinder几乎能上传任何文件,所以设置允许上传的文件扩展名是必需的,ckfinder采用了黑白名单的做法,即同时可以设置"允许上传的扩展名"及"禁止上传的扩展名",config.ascx中可参考下面这样设置:
?
3.3 MIME类型/ContentType校验
光有扩展名校验是远远不够的,比如在asp时代就有一种经典的攻击方式:
a.先把asp木马文件扩展名改成.jpeg之类(这样就能绕过扩展名检验)
b.然后利用其它发包工具(或直接用ckfinder的上传功能),上传"伪jpeg"文件
c.如果网站还支持html代码的留言(或产品编码,个人简介编辑等),写上这样一行代码
?
为了防止这类攻击,必须要在服务端做MIME/ContentType校验,因为文件的扩展名不管改成什么,其内在的MIME/ContentType是不会变的,修改方法:
定位到Settings\ResourceType.cs,找到
?
?
?
?
?
?
?
4.上传文件大小限制
默认情况下ResourceType的构造函数里,MaxSize=0即不对上传文件大小做限制,所以只要在config.ascx里加上限制就行了
?
虽然有MaxSize成员,但其实上传代码中并未对上传文件大小做判断,而是在上传完成后生成缩略图时,才做了一次判断,如果需要在上传文件SaveAs
以前就做判断处理,自行加一条if语句,比较oFile.ContentLength与MaxSize即可
5.上传后缩略图无法正常显示
这是ckFinder在windows系统中的一个小bug,定位到Settings\Thumbnails.cs,找到public string GetTargetDirectory()方法,改成下面这样:
?
默认情况下无法用cs代码修改config.ascx中的BaseUrl设置,因为其后端代码ConfigFile中并没有提供修改BaseUrl的方法,这里我借用了fckeditor以前的用法:利用session来动态处理
?
?
?
打开core\js\ckfinder_ie.js,找到 {en.call(window,qo);},改成{/*en.call(window,qo);*/}即可
二、与CKeditor的整合
1.CKeditor的设置
?
Config.ascx的ResourceType设置,而且ResourceType的名称不能用中文名,否则在快速上传时无法上传到服务端。(很多地
方是在html中以js方式接收参数的,改成中文后会导致乱码,从而无法正确定位目录,熟悉js的朋友如果想让其支持中文Type名,技术上讲应该是可以
修改实现的)
2.与Asp.Net默认安全性的冲突处理
可参见上一篇博文,不再重复
最后:CKFinder需要Session/ViewState,所以如果您的Asp.Net项目中禁用了Session或ViewState,可能会无法正常运行,解决办法要么启用Session/ViewState,要么自行修改CKFinder源代码
相关文章推荐
- CKEditor/CKFinder升级心得(转) 漏洞安全设置
- CKEditor/CKFinder升级心得
- CKEditor/CKFinder升级心得
- CKEditor/CKFinder升级心得
- CKEditor&CKFinder结合实现在线HTML编辑器
- CKEditor&CKFinder上传图片重命名
- CKEditor/CKFinder一些特殊配置
- 修改ckeditor/ckfinder上传文件文件夹 路径以日期格式命名
- W17pro平板电脑升级心得
- 标 题: BBS站点升级和同步开发心得
- PHP中CKEditor和CKFinder使用心得
- CKEditor&ckfindtor
- ckeditor 编辑器+finder配置上传功能
- (使用步骤)ThinkPHP3.1.2中如何配置Ckeditor_4.1.1和Ckfindtor(转)
- FCKeditor如何升级CKEditor及使用方法
- 密码升级心得
- 将asp.net1.1的应用程序升级到asp.net2.0的一点心得
- SharePoint 2007 到 SharePoint 2010 迁移项目实战心得系列(二):升级方法/步骤
- 从FCKEDITOR到ckeditor(一)----升级,使用,配置