asp错误:调用子程序时不能使用括号

今天在处理电子电器交易网(www.hifi168.net )的安全问题。文件上传漏洞是asp网站之痛。在处理这个问题时,动用了双层机制:

1、用户权限检查。由于后台权限是靠session来控制了,这个很容易办到。

2、来源页面检测。文件是从哪里提交上来的?能不能在本地建立一个站点,把页面POST到远程的站点呢?我不是专门做挂马工作的,没有测试过。不过为了防止这种情形,接收上传文件的页面需要做来源页面核对。这就用到了Request.ServerVariables("HTTP_Referer") 参数了。这个参数可以取得传入数据的来源页面地址。对它做判断,如果是站内提交就接受,站外提交就拒绝(本想转向一些包含病毒的网站,奈何手头没有合适的网址,就算了)。

至于上面出现的错误:

Microsoft VBScript 编译器错误 (0x800A0414)
调用子程序时不能使用括号

是在调用函数时碰到的。函数如果包含2个以上的参数,调的方式就比较烦人。原则是:有call时加括号,没有call时不用括号。但是也有例外,就是在方法中调用函数,是可以没有Call并加括号的,例如:

Response.Write(MyFunction(parameter1,parameter2))

至于说要在参数间加空格,或者有没有返回值影响函数的调用方法,参考资料如下,但我不认为是正确的!

以下网络上的参考资料,只做参考,不保证正确!

一般情况下,这种错误出现在调用的过程没有返回值的情况。应该来说,就是调用参数赋值错误。出现这种错误,使用CALL 就是可以解决的。
不返回值的过程调用不能加括号,应该这样写
treesort cat_ID,childcount

如果实在不习惯,可以在前面加Call来调用
Call treesort(cat_ID,childcount)

也就是所谓的有call时加括号,没有call时不用括号。另外,在函数名和参数间要加个空格

 

 

另:调用程序是显示调用子程序时不能使用括号 如set("ab",90) 加上call后正常

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值