Fckeditor 2.6.3 ASP版增加检测上传文件是否为木马功能
分类:程序开发 Tags: fckeditor asp 检测 网页编辑器 评论:0 浏览:3825 最近更新时间:2010/11/4 16:51:58
Fckeditor 2.6.3 已经对上传文件的类型进行严格的限定,可以防止大部分的木马的上传。但是在使用中偶发现有些图片木马仍能够上传。所以本文的目的是进一步增强Fckeditor 对木马的检测。
和添加上传达小限制相同,主要是对fckeditor\editor\filemanager\connectors\asp文件下的config.asp和commands.asp的修改。
1,config.asp的修改
在config.asp 文嘉最后面添加下面的函数,对于木马的检测主要是通过这个函数实现的
函数有一个字符串型参数sFilePath,用来传递文件真实地址,如d:\webroot\xx.jpg
函数将上传的文件以文本方式打开,判断是否含有ASP木马常用的字符串,若含有则函数返回False,否则返回True
2,commands.asp的修改
对commands.asp的修改主要是调用CheckFileSafe函数,检验上传的文件是否为木马,若为木马则将上传的文件删除。修改如下:
在下列语句
之后添加
这里定义了一个错误代码205,提示用户上传的文件为木马,禁止上传。
3,添加错误代码205的提示信息
这里以上传类型为图片为例说明
修改fckeditor\editor\dialog\fck_image文件下的fck_image.js
在switch ( errorNumber )中添加下列语句。
修改完成,可以尝试建立一个文本文件,添加几个危险代码试试看。嘿嘿。另外,可以对上传木马的客户端IP进行记录,保存到文本文件或者数据库中。
和添加上传达小限制相同,主要是对fckeditor\editor\filemanager\connectors\asp文件下的config.asp和commands.asp的修改。
1,config.asp的修改
在config.asp 文嘉最后面添加下面的函数,对于木马的检测主要是通过这个函数实现的
- Function CheckFileSafe(sFilePath)
- '使用文本方式打开文件,检测文本中有无危险代码
- Dim CheckFso,ObjReadFile,sFileTextAll,IsFileSafe,sNotSafe,NotSafeList,ListLoop
- '危险字符串
- sNotSafe=".getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|wscript.shell|script.encode|server.|.createobject|execute|activexobject|language="
- NotSafeList=Split(sNotSafe,"|")
- IsFileSafe=True
- Set CheckFso=Server.CreateObject( "Scripting.FileSystemObject" )
- '判断文件是否存在
- If CheckFso.FileExists(sFilePath) then
- '以文本方式读取文件,并转换为小写
- Set ObjReadFile = CheckFso.OpenTextFile(sFilePath, 1)
- sFileTextAll=Lcase(ObjReadFile.ReadAll)
- ObjReadFile.Close
- '校验文本中是否存在危险字符
- For ListLoop=0 to Ubound(NotSafeList)
- If Instr(sFileTextAll,NotSafeList(ListLoop))>0 then
- IsFileSafe=False
- Exit For
- End If
- Next
- End If
- Set CheckFso=Nothing
- CheckFileSafe=IsFileSafe
- End Function
函数将上传的文件以文本方式打开,判断是否含有ASP木马常用的字符串,若含有则函数返回False,否则返回True
2,commands.asp的修改
对commands.asp的修改主要是调用CheckFileSafe函数,检验上传的文件是否为木马,若为木马则将上传的文件删除。修改如下:
在下列语句
- oUploader.SaveAs "NewFile", sFilePath
- If oUploader.ErrNum > 0 Then sErrorNumber = "202"
- if Not CheckFileSafe(sFilePath) then
- sErrorNumber = "205"
- oFSO.DeleteFile sFilePath
- End If
3,添加错误代码205的提示信息
这里以上传类型为图片为例说明
修改fckeditor\editor\dialog\fck_image文件下的fck_image.js
在switch ( errorNumber )中添加下列语句。
- case 205:
- alert( '上传文件可能为木马,不允许上传!' ) ;
- return ;
本文地址:/491/
-
• JS、ASP、PHP自动检测浏览器语言并转到相关URL
• 兼容IE和Firefox火狐的上下、左右循环滚动JS代码
• ASP获取图片宽度和高度的程序源代码
• ASP搜索关键词时结果用红色显示代码
• rs.open sql,conn,1,1和rs.open sql,conn,1,3的意思
• ASP数据库连接、显示、添加、删除、查询等简单操作教程
• ASP实现点击链接直接下载文件的代码
• 微软未公开的小写转大写函数NumberString
• 图片自动按宽高比例缩小的js代码
• asp多条件查询sql语句用法,可用于搜索、筛选模块