动网论坛7.1彻底研究

原创 2006年07月26日 15:23:00

文件名:Dv_ClsMain.asp
该文件是动网非常经典的部分,它被包含在动网论坛几乎所有的程序中。
主要功能:
1、定义Cls_Forum类
2、定义cls_Templates类
3、定义cls_UserOnlne类

分析:
1、定义Cls_Forum类
该类定义了非常多的共有和私有变量、属性以及过程和函数。直接分析变量是种痛苦的事情。下面就分别从过程、函数

、属性作为切入点进行分析。复杂非常,作好心理准备。

Class_Initialize,顾名思义,初始化Cls_Forum类(实际上是个构造函数,在类被实例化的时候首先自动执行),通过

设置或读取初始化变量
首先,判断客户端是否仍连接在服务器上,如果已经断开,没必要进行下面的任何操作:
If Not Response.IsClientConnected Then Response.End

IsUserPermissionOnly:

IsUserPermissionAll:

ShowErrType:错误信息显示模式,在showerr.asp中得到具体应用,并且可以通过Dv_ClsMain.asp的ErrType属性进行
设置

savelog:设置为1的时候会记录攻击或错误错信息。在Dv_ClsMain.asp中得到具体应用。

SqlQueryNum:数据库查询次数

Reloadtime:共有变量,缓存过期时间,这里是28800

CacheName :缓存组的总名称,这里是

Lcase(Replace(Replace(Replace(Server.MapPath("index.asp"),"index.asp",""),":",""),"//",""))

IsTopTable:

Forum_sn :
VipGroupUser:是否VIP组成员组
Vipuser = False :是否是VIP会员

Boardmaster = False :是否是版主

Superboardmaster = False:

Master = False:

FoundIsChallenge = False:

FoundUser = False

BoardID = Request("BoardID") :获取传进的版面ID

如果直接进入的是首页或其他情况下,当然不会传入BoardID了,所以:
If IsNumeric(BoardID) = 0 or BoardID = "" Then BoardID = 0

如果传入的BoardID是数字则(在这种情况下,Request("BoardID")是字符串,所以):
BoardID = Clng(BoardID)

然后读取cookie:
MemberName = checkStr(Trim(Request.Cookies(Forum_sn)("username"))):用户名(checkStr函数过滤单引号)
MemberWord = checkStr(Trim(Request.Cookies(Forum_sn)("password"))):密码
UserHidden = Trim(Request.Cookies(Forum_sn)("userhidden")):隐身属性(1-隐身,2-正常)
UserID = Trim(Request.Cookies(Forum_sn)("UserID")):用户ID

如果隐身属性为空为字符串“0”则说明隐身属性无效,重新设置:
If IsNumeric(UserHidden) = 0 or Userhidden = "" Then UserHidden = 2

如果用户ID为空或为字符串“0”则说明用户未登陆或已超时,所以:
If IsNumeric(UserID) = 0 Or UserID="" Then UserID=0

然后处理一下UserID:
UserID = Clng(UserID)

获取真实IP:
UserTrueIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If UserTrueIP = "" Then UserTrueIP = Request.ServerVariables("REMOTE_ADDR")
UserTrueIP = CheckStr(UserTrueIP)

获取脚本路径:
Dim Tmpstr
Tmpstr = Request.ServerVariables("PATH_INFO")
Tmpstr = Split(Tmpstr,"/")
ScriptName = Lcase(Tmpstr(UBound(Tmpstr)))
ScriptFolder = Lcase(Tmpstr(UBound(Tmpstr)-1)) & "/"
PATH_INFO服务器变量客户端提供的额外路径信息。可以使用这些虚拟路径和 PATH_INFO 服务器变量访问脚本。

获取用户等级:
MemberClass = checkStr(Request.Cookies(Forum_sn)("userclass"))

Page_Admin=False :该变量用的地方有点多,待总结

模拟HTML部分:略


class_terminate:在类卸载时触发该函数(析构函数)
释放缓存:
If NodeUpdate Then
Application.lock
Set Application(CacheName&"_Boradlist")=BoardXML.cloneNode(True)
Application.unlock
End If
释放数据集和数据库连接对象,以及临时对象BoardXML:
Set BoardXML = Nothing
If IsObject(Conn) Then Conn.Close : Set Conn = Nothing
If IsObject(Plus_Conn) Then Plus_Conn.Close : Set Plus_Conn = Nothing


Name属性: 定义缓存对象名称,只写属性
value属性: 读取和写入缓存数据
ObjIsEmpty()函数:判断当前缓存是否过期
DelCahe(MyCaheName)方法:手工删除一个缓存对象,参数是缓存对象的名称。

 

彻底解决Discuz X2论坛域名自动跳转到forum.php

首先声明:这是一篇去除discuz论坛中forum.php尾巴最全的方法,之前也看到过类似的文章,但按照步骤操作后,大家会发现还有很多地方没有去掉forum.php尾巴。这样不利于网站seo。今天,为...

动网论坛(Dv7.1) 2005增强版Ⅱ

  • 2005年08月05日 02:11
  • 0B
  • 下载

彻底解决联想手机数据连接不能上网问题(无需恢复出厂设置) 本文来自移动叔叔论坛 ,详细出处请参考:http://bbs.ydss.cn/thread-201115-1-1.html

彻底解决联想手机数据连接不能上网问题(无需恢复出厂设置)  本文来自移动叔叔论坛 ,详细出处请参考:http://bbs.ydss.cn/thread-201115-1-1.html 发表于 ...

动网论坛V7.0 To V7.1升级程序 7.1.0

  • 2005年12月27日 09:38
  • 218KB
  • 下载

动网论坛8.2经典注入漏洞利用

一、实验目的理解动网论坛8.2原理二、实验原理动网论坛用户登录过程中,过滤不严,导致注入,提升权限。漏洞存在源文件的login.asp中。三、实验环境本机:192.168.1.2 目标机:192.1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动网论坛7.1彻底研究
举报原因:
原因补充:

(最多只允许输入30个字)