解决了一个 EWEBEDITOR问题

十一天没有写博客了~~先来和大家打个招呼! #taoqi#

这些天过得还好,天气暖和了,心情也不错.就是没能来写博客,比较遗憾~

自从博客开通几天之后,有朋友说不希望我的博客成为我的备课本,不希望我写太多技术方面的文章.所以就一直没有写,把几个有关技术的分类都删除了#yumen#..今天给SSF修改后台程序,遇到一个问题,憋了足足一下午,最后终于解决了,心情愉快,赶紧上来写下来,记在这里,怕以后忘了,也可以给遇到同类问题的朋友作为参考.

问题描述:
EWEBEDITOR在线编辑器,在部分服务器上使用文件上传功能时提示"d_file.myform.uploadfile 为空或不是对象"
问题原因:
经BAIDU反复搜索和试验,认为由于服务器安装了反病毒或反木马工具,对ASP程序中的server.createobject("abodb.stream")语句进行了屏蔽.由于这个语句无法直接执行,因此导致出现上述问题.(主要是屏蔽了主目录下的Upload.asp,另外include/upload_class.asp中也有几处.upload.asp中的一处最为重要)。
解决办法:
由于杀病毒软件只是对代码进行字符串匹配,并不直接阻止adodb.stream对象的创建,因此考虑可以通过简单地改变字符串结构来绕过检查.
server.createobject("adodb." & "stream")
网上很多资料都提供了这个修改方法,不过经过测试,此法无效.估计是新版本的杀病毒软件对该语句进行了模糊匹配或正则表达式匹配,因此无法通过简单的截断字符串再连接起来的方法绕过.于是修改成以下更为复杂的语句:
strnqp="ado"
strnqp=strnqp&"db."
strnqp=strnqp&"strea"
strnqp=strnqp&"m"
Set Ads = Server.CreateObject(strnqp)
此时测试,一切正常!
看来,新版本的杀毒软件已经"聪明"多了,不会被雕虫小技欺骗.不过机器毕竟是机器,只要没有禁止adodb.stream组件的使用,总有办法可以从杀毒软件眼皮底下蒙混过关.#shetou#
以上是解决经过,和搞ASP的朋友们交流.

解决了一个 EWEBEDITOR问题》上有5条评论

  1. XPB

    呵呵,是有这个问题。我以前碰到这个也让我郁闷了很久,在一台服务器上可以上传,另一台服务器上要命不行。两台服务器都是我配置的,最后想了想就是杀毒软件不同。不行的那个是使用的诺顿。上传是使用得化境的一个版本。也按照网上说的修改关键字的方法,也没行通。

    后来换了个Ewebeditor商业版的,倒没问题了。咖啡和诺顿都没问题,其他的杀毒软件没测试过。

    回复
  2. 王艳明

    我也遇到个问题 不是杀毒软件的事 而是w3c的标准问题 我在php的页面中引入js
    <script LANGUAGE="JavaScript">
    <script language='javascript' src='./js/common.js'></script>
    </script>
    上面的不好用
    改成下面的这种就好用了
    <script LANGUAGE="JavaScript">
    document.write ("<scr"+"ipt language='javascript' src='./js/common.js'></scr"+"ipt>");
    </script>

    这个和站长的处理方法有些相似。

    回复
  3. XPB

    <script LANGUAGE="JavaScript">
    <script language='javascript' src='./js/common.js'></script>
    </script>
    这个好像不是W3C标准的问题吧?上面的写法不对,外部引入的js就没必要再用js标记括起来了。直接用:

    <script language='javascript' src='./js/common.js'></script>

    不就行了?

    <script LANGUAGE="JavaScript">
    。。。
    。。。
    这中间写的是js语句
    </script>

    类似的引入外部一个css:
    <link rel="stylesheet" rev="stylesheet" href="global.css" type="text/css"/>

    其中的global.css中同样就不需要再声明<style type="text/css">
    了。

    回复
  4. 王艳明

    <script LANGUAGE="JavaScript">
    <script language='javascript' src='./js/common.js'></script>
    </script>
    上面这个确实不用放在js标记里,纠正

    但是下面的这个 是必须放在js标记里的
    <script LANGUAGE="JavaScript">
    document.write ("<scr"+"ipt language='javascript' src='./js/common.js'></scr"+"ipt>");
    </script>
    ps:我做的这个项目确实存在这种情况,这种问题是存在的,楼上的可以试试引入js,呵呵。

    回复

王艳明进行回复 取消回复

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

You must enable javascript to see captcha here!