简单的去除eWebEditor上传文件类型限制的方法

虽然可以去除eWeiEditor对于文件类型的限制,但是[color=Red]极不安全!!
今天在给老师做精品课程网站的时候,用到了徐氏的新闻发布系统,里面集成的正好是eWebEditor编辑器,由于要上传几个MHT的课件,可惜eWebEditor又限制了MHT上传[cry]
自己动手,丰衣足食!
于是开始想办法去除这个限制,在Edit目录下面翻了半天,也没找到关于一个扩展名的东西,我的ASP水平也有限,仅仅是能看懂几个语句而已,从来没有学过……
不过,在Upload.asp中,发现了一些东西:

var sAllowExt = "<%=sAllowExt%>";
// 检测上传表单
function CheckUploadForm() {
if (!IsExt(document.myform.uploadfile.value,sAllowExt)){
parent.UploadError("提示:\n\n请选择一个有效的文件,\n支持的格式有("+sAllowExt+")!");
return false;
}
return true
}

这里面正好有关于文件类型受限的提示,我分析了一下。
CheckUploadForm()函数应该是用来检查上传文件的类型。

if (!IsExt(document.myform.uploadfile.value,sAllowExt)){
parent.UploadError("提示:\n\n请选择一个有效的文件,\n支持的格式有("+sAllowExt+")!");
return false;
}
return true

大概的意思是,如果扩展名符合要求就返回true值,否则就弹出提示,然后返回False值。
下面还有这样的

' 检测扩展名的有效性
Sub CheckValidExt(sExt)
Dim b, i, aExt
b = False
aExt = Split(sAllowExt, "|")
For i = 0 To UBound(aExt)
If LCase(aExt(i)) = sExt Then
b = True
Exit For
End If
Next
If b = False Then
OutScript("parent.UploadError('提示:\n\n请选择一个有效的文件,\n支持的格式有("+sAllowExt+")!')")
Response.End
End If
End Sub

子程序CheckValidExt很明显是用来检查扩展名的,就是先定义b=false,如果扩展名合法,b变为True,否则就弹出提示。

这两个我也没搞清楚到底哪个是在起作用,不过既然都在做同一项检查,就把这两个都CRACK了吧~
动手
第一个改成:

// 检测上传表单
function CheckUploadForm() {
return true
}

不管是什么,直接返回true就是了,哈哈。
第二个改成:

' 检测扩展名的有效性
Sub CheckValidExt(sExt)
Dim b, i, aExt
b = True
aExt = Split(sAllowExt, "|")
For i = 0 To UBound(aExt)
If LCase(aExt(i)) = sExt Then
b = True
Exit For
End If
Next

End Sub

上来就把b定义成true的,任它怎么改也是true,呵呵,再把提示文字去掉。
再看最下面:
也是关于文件上传的,这个是检测是否使用了组件。

Function IsObjInstalled(strClassString)
On Error Resume Next
IsObjInstalled = False
Err = 0
Dim xTestObj
Set xTestObj = Server.CreateObject(strClassString)
If 0 = Err Then IsObjInstalled = True
Set xTestObj = Nothing
Err = 0
End Function

意思是先IsObjInstalled = False,然后如果检测到安装了组件,就返回IsObjInstalled = True。
不管怎么样,个人感觉就不要它检测组件了吧,统统用无组件的方式上传~。
修改后:

Function IsObjInstalled(strClassString)
On Error Resume Next
IsObjInstalled = False
Err = 0
Dim xTestObj
Set xTestObj = Server.CreateObject(strClassString)
If 0 = Err Then IsObjInstalled = False
Set xTestObj = Nothing
Err = 0
End Function

这样以来,整个edit目录再次上传以后,发现可以传任意格式的文件了。

[color=Red]不过要注意的问题是,这样修改十分不安全,如果某些人传一个ASPWebShell上去,后果不堪设想啊……大家慎用之!

关于 离乐乐

上善若水,水善利万物而不争,处众人之所恶,故几于道。
此条目发表在 技术 分类目录,贴了 标签。将固定链接加入收藏夹。

简单的去除eWebEditor上传文件类型限制的方法》有 2 条评论

  1. FeelingFly 说:

    Oops?
    好久没动过eWebEditor了,谢谢您的资料~ :wink:

  2. ddr 说:

    \WebEditor\asp\config.asp 文件中第31行如下:
    aStyle(9) = "coolblue|||blue|||coolblue|||uploadfile/|||550|||350|||rar|zip|exe|doc|xls|chm|hlp|pdf|txt|ppt|||swf|||gif|jpg|jpeg|bmp|||rm|mp3|wav|mid|midi|ra|avi|mpg|mpeg|asf|asx|wma|mov|||gif|jpg|jpeg|bmp|||5000|||100|||100|||100|||100|||1|||1|||EDIT|||1|||0|||0|||||||||1|||0|||(Default Style) Cool blue interface, blue tone, standard style, some of the commonly used buttons, standard suitable width for the interface|||1|||en|||0|||500|||300|||0|||Copyright...|||000000|||12|||Verdana||||||0|||jpg|jpeg|||300|||FFFFFF|||1"

    程序中调用代码如下:
    For i = 1 To Ubound(aStyle)
    aStyleConfig = Split(aStyle(i), "|||")
    If Lcase(sStyleName) = Lcase(aStyleConfig(0)) Then
    bValidStyle = True
    Exit For
    End If
    Next

    我使用的是coolblue 样式,所以是上面的那一条记录啦,下面是针对Split出来的数组数据的描述
    0=样式名称,
    1=按钮图标文件夹,
    2=Css样式文件夹,
    3=上传文件保存位置,
    4=最佳调用宽度,
    5=最佳调用高度

    文件类型:
    6=其他,
    7=动画,
    8=图像,
    9=媒体,
    10=远程自动上传

    文件大小:
    11=其他,
    12=动画,
    13=图像,
    14=媒体,
    15=远程自动上传

    无用设置:
    16=是否显示状态栏,
    17=是否在粘贴Word文档的时候提示清理,
    18=默认编辑模式
    19=路径模式:[0=相对路径,1=绝对路径,2=绝对根路径]
    20=上传组件:[0=无组件上传,免费版本只提供无组件上传,如果想使用其他上传方式请与官方联系购买正式版]
    21=保存模式:[用于将所上传的文件分目录保存,选项有:年月日目录,年月目录,日目录等,免费版本无此功能!]
    23=显示路径

    无用设置:
    24=是否自动上传远程文件,
    25=默认是否显示指导方针,
    26=编辑器样式简介,
    27=是否允许自动选择语言,
    28=默认语言

    无用设置:29=,30=,31=,32=,33=,34=,35=,36=,37=,38=,39=,40=,41=,42=

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>