• 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后正常

  • 相关阅读:
    央企国管公积金提取。本人实际经历 2013年6月5日
    一台机器开启多个tomcat7 绿色版
    给Repeater、Datalist和Datagrid增加自动编号列
    有关比较分析的MDX
    01[转Cognos8第三讲]Cognos8的安装与配置
    BI前端工具对比
    转摘cognos学习笔记
    04[转Cognos8第四讲]权限配置(2)
    如何更改oracle字符集
    IBM Cognos BI 最佳实践: 定制 IBM Cognos 8 UI
  • 原文地址:https://www.cnblogs.com/y0umer/p/3839405.html
Copyright © 2020-2023  润新知