浏览主站 | 站长工具 | 新闻资讯 | 站长学院 | 站长盈利 | HTML教程 | 网址导航 | 站长周刊 | 会员投稿 | 滚动新闻 | RSS
 18 12
发新话题
打印

[代码问题] 海洋分类信息网 V5.0 SQL 商业正式版调试问题求助

本主题由 败家子 于 2008-7-4 18:40 设置高亮

海洋分类信息网 V5.0 SQL 商业正式版调试问题求助

IP限定功能有问题,一限定IP就出错:

Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配: 'Application(...)'

/inc/function.asp,行 232

具体代码如下:
Function LockIP
        IF Application(CacheName&"_LockIP")<>"" Then
                IF Instr(Request.ServerVariables("URL"),Lcase(Application(CacheName&"_Table")(0))) Then Exit Function
                If ChkLoginIP(Application(CacheName&"_LockIP"),GetIP)=True Then
                        Response.write"您的IP被禁止 <a href=""mailto:"&Application(CacheName&"_WebSetting")(7)&""">和管理员联系</a>"
                        Response.End()
                End If
        End IF
End Function

暂时的解决方法:找到conn.asp文件,屏蔽掉LockIP这行....但锁IP功能也失效。
哪位高手能完美的解决下!!!

TOP

等待高手解决

TOP

你的系统是WIN2003  ?
乱发AD 者 刷无意义帖捣乱的 一律永久禁止访问

TOP

我都还下不了,郁闷。

TOP

楼上的 你怎么下不了啊?

楼主,你也可以参考下 4.9 的 相互融合一下。
乱发AD 者 刷无意义帖捣乱的 一律永久禁止访问

TOP

回复 5楼 败家子 的帖子

500分吧?

TOP

测了一下,果然如楼主所言,研究了一下,解决办法:

IF Instr(Request.ServerVariables("URL")
前面加一个注释符,即单引号,变成即可
'IF Instr(Request.ServerVariables("URL")

这一句代码在本V5.0程序体系统中是不应该存在的,它是"原准备提供的功能,但后来因故取消"的无用代码,在发布前没有清除干净。
这句代码的作用是说:"如果用户访问的是超级管理员后台路径,就不受IP屏蔽限制" 。这种想法有点匪夷所思,没有哪个站长会屏蔽自己的IP,而且这一点有可能被当成后门(你屏蔽了某IP,只能拒绝其访问前台,但后台不受限制!)

Application(CacheName&"_Table")在海洋V5.0 SQL程序中是无效的一个application变量,它对应数据库中名为“china_setup”表的"table"字段,事实上,在china_setup表中是不存在这个字段的(作者清除了数据库中的字段,但没有清除相关代码)。
大家可以在conn.asp中看到,本程序主要的application变量有Application(CacheName&"_Setup")  
Application(CacheName&"_WebSetting")
Application(CacheName&"_LockIP")和
Application(CacheName&"_About")这四个
刚好与表china_setup中几个字段对应,但唯独不存在 Application(CacheName&"_Table"),这肯定是编程者当初想提供一个功能,但后来因故取消,但没将代码清理干净,导致添加IP时出错。

附带说一下(重要!),由Application(CacheName&"_Table")问题引出了两个废文件,即admin/table.asp及根目录下的table.asp(这个更像一个临时来测试程序的),这两个文件原本是用来更改“超管后台路径”及“分站管理员后台路径”的,当我们执行这两文件并修改管理员后台路径后,提交时,会将数据写入Application(CacheName&"_Table"),同时存入数据库表 china_setup的"table"字段中,问题如前面所言,china_setup中根本就没有"table"这个字段,所以这两个文件完全无用(倒是可以将Application(CacheName&"_Table")赋值)。这两个文件可以通过FSO功能随意修改admin文件夹名称,而且可以让后台访问者绕过IP屏蔽的限制。像这种即有风险,但又不能实现预定功能的文件,最好不要上传到空间里。
当然作者在后台仍然提供了一个修改后台路径的功能,即在“系统设置”里,对应文件是sysset.asp。但它并未通过FSO来改变后台文件夹名称,而是要求站长通过 FTP手工改动,这想必是出于安全的考虑。
本帖最近评分记录
  • 败家子 威望 +50 祖国需要这样的人才啊。 2008-7-3 18:08
  • 败家子 经验 +50 祖国需要这样的人才啊。 2008-7-3 18:08

TOP

8002 太厉害了~!

[ 本帖最后由 W◇綯ぐ気¨ 于 2008-7-3 20:34 编辑 ]

TOP

8002是高手中的高高手

TOP

测试了一下8002的方法。。果然可行..先道声谢了...

系统里果然有table.asp文件,实在太危险了,再去看了官方网站里的那些5.0站,里面的table.asp都已删除,
还有,缺少的删除过期信息的文件可以从4.9直接复制过来使用
至于采集系统,不用也罢

其它的暂时还没发现什么问题。
本帖最近评分记录

TOP

 18 12
发新话题