`

FCKeditor(Asp.Net)的配置、扩展与安全性

阅读更多

前言

FCKeditor是使用非常广泛的HTML编辑器,本文从 ASP.NET 的使用场景对 FCKeditor 与 FCKeditor.NET 的配置、功能扩展(如自定义文件上传子目录自定义文件名上传图片的后期处理等)、以及安全性进行初步的阐述。

希望能帮助有同样需求的同仁节省一点时间;也希望各位能指正其中的不足。谢谢。

 

一、自定义 FCKeditor 的 BasePath

BasePath 即FCKeditor在网站中的相对路径,默认值是 /fckeditor/,最好在Web.config appSettings中对其进行配置:

<!----><add key="FCKeditor:BasePath" value="/FCKeditor_2.6.3/"/>


这样做有诸多优点:

  1. 开发环境与生产环境不同,开发环境一般是http://localhost/xxx.com/这种情况下FCKeditor就得放在一个虚拟目录http://localhost/fckeditor/中,若涉及多个网站的开发,而各网站的FCKeditor有差别时,这样显然不是最优;
    而且因为物理目录结构与逻辑目录结构不同,也会有发生错误的隐患;
    而如果采用Web.config的配置,就可以在开发环境采用不同的配置,FCKeditor的物理路径与生产环境保持一致;
  2. 当升级FCKeditor时,只需要将新版本的FCKeditor放在相应版本号的目录里,修改一下配置即可。这样可以解决因为静态资源的客户端缓存问题,不同用户出现不同的错误的问题;
  3. 可以直观地看到自己的FCKeditor的版本号。


二、配置文件上传的目录

FCKeditor的文件上传(如图片上传)目录可以通过Web.config appSettings进行配置,如:

<!----><add key="FCKeditor:UserFilesPath" value="/UploadFile/FCKeditor/"/>


也可以在 /FCKeditorBasePath/editor/filemanager/connectors/aspx/config.ascx 中进行配置,但我建议 FCKeditor 目录中的内容能不改就不改(fckconfig.js除外),这样日后升级可以放心地替换即可。


三、自定义文件上传的子目录的格式

我们知道,一个文件夹下面不能存放过多的文件(据称Windows下面的目录下2000为阈值),否则对该目录的访问会严重影响I/O性能。而FCKeditor的文件存储是在单一的一个目录进行的。我对FCKeditor进行了扩展,可以在Web.config appSettings对存储目录的格式自定义,如:

<!----><add key="FCKeditor:FolderPattern" value="%y/%m-%d/"/>


以今天的日期为例:这样产生的文件上传子目录格式为:2008/10-21/。
年月日格式的目录可以随意组合,如:

<!----><add key="FCKeditor:FolderPattern" value="%y/%m/%d/"/>


这样产生的文件上传子目录变成了2008/10/21/

参考:

  • %y 代表 当前时间的年份
  • %m 代表 当前时间的月份
  • %d 代表 当前时间的日


四、自定义文件上传的文件名格式

FCKeditor对文件名的处理规则是:如果当前目录下没有重名文件,则上传后的文件名与用户PC上的文件名一致;若存在n个重名文件,则加入用户PC上的文件名是Example.xxx,上传后的文件名变为:Example(n).xxx

我的项目里要求对用户上传的文件名变成Guid的格式,所以我对FCKeditor也做了扩展,在Web.config appSettings可以对上传后文件的格式自定义,如:

 

<!----><add key="FCKeditor:FilenamePattern" value="%guid.%extl"/>


这样的文件名如:a299e63a-7d2d-493d-bbb9-99162ef5b6b8.gif

参考:

  • %guid 代表 一个新的guid字符串
  • %fnl 代表 源文件名的小写
  • %fnu 代表 源文件名的大写
  • %extl 代表 源文件扩展名的小写
  • %extu 代表 源文件扩展名的大写


五、对上传图片进行缩放处理

用到FCKeditor图片上传功能的场景中,很多是内容的发表。内容中往往不需要几千像素大小的图片,比如我的项目中,文章区域最宽也就560像素,所以我做了一个扩展,在Web.config appSettings中可以对图片的最大宽度进行自定义:

<!----><add key="FCKeditor:MaxWidthOfUploadedImg" value="560"/>


有了这段配置,上传后的图片的宽度都控制在了560像素及以内


六、自定义上传后图片URL中的域名

为了加快页面的渲染,我们可以把图片等静态资源放在一个独立的域名当中。但FCKeditor默认的图片上传后URL是相对路径,如图:

我增加了这个扩展,在Web.config appSettings可以配置上传后图片URL的域名,如:

<!----><add key="FCKeditor:UploadedFilesDomain" value="http://a.cvimg.cn/"/>

 

如图:


七、解决上传文件名含有中文的文件时提示 "invalid file type" 的问题

这个问题只需要在Web.config中增加一段配置即可解决:

<!----><location path="FCKeditor_2.6.3/editor/filemanager/connectors/aspx/upload.aspx">
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="gb2312"/>
</system.web>
</location>


注意:

  1. responseEncoding是网站的默认编码
  2. FCKeditor_2.6.3是FCKeditor的BasePath


八、FCKeditor的安全性

在FCKeditor的2.3.2版本里,曾有一个漏洞,可以通过 /editor/filemanager/browser/default/connectors/aspx/connector.aspx 往服务器上传任意文件,我的网站就曾经中招。

2.6.3虽然暂未发现类似的问题,但一般情况下用不到的文件最好还是删除比较好:

  1. FCKeditor BasePath 根目录中除了保留:
    1. /editor
    2. /fckconfig.js
    3. /fckpackager.xml
    4. /fckstyles.xml
    5. /fcktemplates.xml
    6. /license.txt
    外,全部删除

  2. /editor/filemanager/中除了保留:
    1. /connectors/aspx/config.ascx
    2. /connectors/aspx/upload.aspx
    外,全部删除

  3. 删除 /editor/_source/

  4. /editor/filemanager/connectors/aspx/config.ascx 的 CheckAuthentication() 方法中,增加验证用户是否登录的逻辑

注意:以上措施仅适用于ASP.NET的网站,其他语言版本的网站未考虑。

分享到:
评论

相关推荐

    fckeditor asp.net版2.6.3

    该压缩包"**FCKeditor2.6.3 for asp.net 2.0**"包含的是针对ASP.NET 2.0框架的FCKeditor 2.6.3版本。这个版本可能已经过精简,去除了不必要的文件和示例,以便于开发者更便捷地集成到自己的项目中。以下是FCKeditor...

    fckeditor for asp.net

    在实际应用中,为了更好地利用fckeditor for asp.net,开发者需要了解如何配置编辑器的设置,如何通过服务器端代码(如C#或VB.NET)与编辑器进行交互,以及如何处理用户提交的富文本内容。同时,掌握JavaScript和ASP...

    FCKeditor.Net_2.6.3.zip和FCKeditor-v2.6.3

    7. **安全性**:FCKeditor通过内置的安全机制,如XSS过滤,防止恶意代码注入,保护服务器和用户的安全。 在FCKeditor-v2.6.3这个版本中,可能包含了对之前版本的错误修复、性能优化以及新功能的添加。例如,可能...

    FCKEditor在asp.net中的用法

    **FCKEditor在ASP.NET中的应用** FCKEditor是一款开源的富文本编辑器,它为Web应用程序提供了类似于桌面文本编辑器的功能,用户可以在浏览器中进行文本格式化、插入图片、链接等操作。在ASP.NET中集成FCKEditor,...

    FCKeditor2.6 for asp.net

    6. **兼容性与浏览器支持**:FCKeditor2.6版本在主流浏览器(如IE、Firefox、Chrome等)上表现良好,但需要注意不同浏览器间的差异,可能需要对某些功能进行特别处理。 7. **扩展与插件**:虽然这是一个精简版,但...

    fckeditor开发.net-Demo带上传图片功能

    其中可能包括了ASP.NET页面(如.aspx文件)、后台代码(如.cs或.vb文件)、配置文件(如web.config)以及FCKeditor相关的JS库、CSS样式和图片资源。开发者可以通过运行此项目,了解和学习FCKeditor的集成和图片上传...

    FCKeditor_2.6.6+FCKeditor.Net_2.6.4

    1. **安装与配置**:首先,你需要将下载的压缩包解压,然后在ASP.NET项目中引用相关的DLL文件和JavaScript库。编辑器的配置文件(如fckconfig.js)允许自定义编辑器的行为,如工具栏布局、默认样式、文件上传路径等...

    【ASP.NET】文本编辑-Fckeditor.Net_2.6.3.rar

    【ASP.NET】Fckeditor.Net_2.6.3是一个经典的文本编辑器组件,适用于ASP.NET开发环境,用于在网页上实现富文本编辑功能。FCKeditor(现已更名为CKEditor)是一个开源的JavaScript编辑器,而Fckeditor.Net是其在ASP...

    网站富文本编辑器Fckeditor在ASP.NET中应用源程序

    在ASP.NET页面中,可以使用`&lt;%@ Register %&gt;`指令注册FCKeditor控件,然后在页面上直接使用`&lt;fckeditor:FCKeditor&gt;`标签。例如: ```asp &lt;%@ Register Assembly="FCKeditorV2" Namespace="FCKeditorV2" TagPrefix="...

    FCKeditor.Net_2.6.3在线编辑器.rar

    3. **安全性和稳定性**:FCKeditor.Net 2.6.3版在安全性方面进行了加强,防止了XSS攻击,并提高了编辑器的稳定性,减少了崩溃和错误的可能性。 三、FCKeditor的应用场景 FCKeditor被广泛应用于新闻发布系统、论坛...

    asp.net典型模块与项目实战大全源程序

    7. 部署与配置:ASP.NET项目可以通过IIS进行部署,同时提供详细的配置文件来调整应用程序的行为。 FCkeditor编辑器是一个流行的开源富文本编辑器,常用于网页内容的编辑,提供了丰富的格式化选项和插件支持,便于...

    fckeditor网站在线文本编辑器+asp.net

    7. **易于集成**:与ASP.NET结合使用时,Fckeditor可以通过.NET的服务器控件直接在ASPX页面中使用,只需简单的配置即可完成集成。 8. **用户体验**:Fckeditor的界面设计友好,操作直观,降低了用户的使用门槛。 ...

    .NET版FCKeditor在线编辑器

    1. **FCKeditor控件**:这是用于ASP.NET页面的服务器控件,可以直接拖放到网页上,通过属性配置编辑器的行为,如高度、宽度、工具栏配置等。 2. **JavaScript API**:用于客户端交互,开发者可以使用API进行更高级的...

    FCKeditor源码及开发文档(asp.net)

    这个压缩包包含了FCKeditor在asp.net环境下的源代码和详细的开发配置文档,是开发者进行网页编辑功能集成的重要资源。 1. **FCKeditor概述** FCKeditor是一款基于JavaScript的WYSIWYG(所见即所得)编辑器,广泛...

    fckeditor3.5.2+.net3.5.2

    FCKeditor.net是FCKeditor的.NET平台版本,特别针对ASP.NET环境进行了优化。这个版本包括以下特点: 1. **集成.NET Framework 3.5.2**:与.NET 3.5.2紧密集成,提供了更好的性能和兼容性。 2. **易于集成**:...

    FCKEditor.Net_2.6

    通过源码,我们可以了解如何在C#或VB.NET中与客户端的JavaScript进行交互,以及如何处理ASP.NET中的安全性和状态管理问题。 5. **实例代码**:提供的实例代码展示了如何在ASP.NET项目中部署和使用FCKeditor.Net。...

    FCKeditor2.6.3.net使用详细和源码

    在.NET环境下,它通过提供ASP.NET控件的形式,使得开发者能够轻松地在网页上添加富文本编辑功能。 **二、集成FCKeditor 2.6.3** 1. **下载与解压**:首先,从官方网站或第三方资源库下载FCKeditor的.NET版本2.6.3...

    FCKeditor .NET的配置、扩展与安全性经验交流

    FCKeditor是使用非常广泛的HTML编辑器,本文从 ASP.NET 的使用场景对 FCKeditor 与 FCKeditor.NET 的配置、功能扩展(如自定义文件上传子目录、自定义文件名、上传图片的后期处理等)、以及安全性进行初步的阐述。

    FCKeditor.Net上传图片加水印

    这涉及到后端的文件处理,通常使用ASP.NET或其他服务器端技术来接收和存储图片。上传过程通常需要考虑文件类型验证、大小限制和安全问题,以防止恶意文件上传。 3. **图片加水印的实现** 添加水印是一项常见的图片...

    FCKeditor.Net

    在使用FCKeditor.Net时,开发者需要将其嵌入到ASP.NET页面中,并配置相应的参数。这通常涉及以下几个步骤: 1. **下载并解压FCKeditor.Net**:从官方网站或其他可靠的源获取最新版本的FCKeditor.Net压缩包,解压到...

Global site tag (gtag.js) - Google Analytics