CKEditor/CKFinder升级心得(转) 漏洞安全设置
2012-05-16 10:57
519 查看
CKEditor/CKFinder升级心得(转) 漏洞安全设置
一、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里加上限制就行了
?
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的设置
?
2.与Asp.Net默认安全性的冲突处理
最后:CKFinder需要Session/ViewState,所以如果您的Asp.Net项目中禁用了Session或ViewState,可能会无法正常运行,解决办法要么启用Session/ViewState,要么自行修改CKFinder源代码
相关文章推荐
- CKEditor/CKFinder升级心得
- 转: CKEditor/CKFinder升级心得
- CKEditor/CKFinder升级心得
- CKEditor/CKFinder升级心得
- Apache Tomcat全系产品再次爆出严重的安全漏洞,赶紧升级最新版本。
- Liveupdate的安全漏洞导致MSN升级被挂马而绕过诺顿防火墙
- 织梦系统免疫漏洞安全设置通用方法
- Java 6 发现安全漏洞,建议尽快升级到 7
- 记服务器升级openssl-1.0.1g之安全漏洞Heartbleed
- asp.net使用ckeditor_3.6.2+ckfinderckfinder_aspnet_2.1.1设置上传图片功能
- Java 6 发现安全漏洞,建议尽快升级到 7
- iPhone将升级系统封堵安全漏洞
- NTP服务一大波安全漏洞已修复,请尽快升级
- CKEditor&CKFinder结合实现在线HTML编辑器
- iPhone将升级系统封堵安全漏洞
- 8_25 设置用户id或组id的程序绝对不能再调用system函数。安全漏洞
- CKEditor&CKFinder上传图片重命名
- NTP 服务进程修复了一大波安全漏洞,请尽快升级
- 服务器安全升级:ssl证书配置好,设置http跳转https的几种方法
- CKEditor/CKFinder一些特殊配置