风讯CMS免费源代码不为人知的片段

由于时间紧迫,要为一个小公司建立站点,迫不得已用了风讯4.0 sp7

看来是国内比较好的免费CMS了,拿下来那当然要修改了,但是在我改代码的过程中发现了太多奇怪的代码,很多垃圾代码(暂时姑且说是垃圾代码吧),很多大段大段注释掉的代码.我看不明白,因为程序相当的不具可读性...

 

偶然间我发现管理后台有个JS 发送我的服务器信息等到风讯,这引起了我的高度重视

于是我开始查找里面的变量 包括  MF_Site_lock FoosunMFEmail COOKIES等..这一找不要紧,发现 SYSINFO.asp里面检测版本的函数找不到,接着我就一个一个函数的倒推,让我发现了风讯代码的 无聊之处,就是隐藏部分代码从而悄悄发送信息到他服务器,尤其email 要知道站长的email是很重要的,现在我把这些部分代码贴出来,

 

首先在 sysinfo.asp里面检测版本的这段JS

它没有直接写文件名字,而是办ASIIC  代码中 getinfo的地址转换出来就是SysCheckVer.asp

 

这个AJax传递数据的文件找到了,打开SysCheckVer.asp一看: OH..GOD 这么长的代码 首先是Function Replace_MF_default_Flag  这个干什么的,定义了大堆的变量,但是找不到和版本相关的东西,代码拉到最后才发现,上面这些都是没有用的,风讯骗人的玩意儿...

Str_Act = Trim(Request.Form("Act"))
If Str_Act = "" Then Str_Act = "Ver"
Select Case Str_Act
    Case "Ver"
        StrInfo = Str_get(1)
    Case "News"
        StrInfo = Str_get(2)
    Case Else
        StrInfo = "||"
End Select
StrInfo = Split(StrInfo,"||")
If StrInfo(0)="True" Then
    Response.Write "True||"&Str_Act&"||"&StrInfo(1)
ElseIf StrInfo(0)="False" Then
    Response.Write "False||"&Str_Act&"||"
End If

这里才是关键,检测版本了,那么回到上面那个

tring.fromCharCode(65,99,116,61,86,101,114)是Act=Ver,String.fromCharCode(65,99,116,61,78,101,119,115)是Act=News

 

现在分析这个运作过程.FS_InterFace/MF_Function.asp里找到

 

 

噢噢...这里就是收集信息的东东了,  那么这几个  SESSION值就有得解释了..

它会收集服务器的IP、服务器域名、服务器端口、序列号。调用GetInfo()过程,

GetInfo()在FS_Inc/Function.asp里

Function GetInfo(GetPath)
    Dim http,ErrContentLength,Report,ContentLength,ErrContent
    ErrContent = ""
    On Error Resume Next
    Response.Clear
    Set http=Server.CreateObject("Microsoft.XMLHTTP")
    If Err Then
        Err.Clear
        Set http = Server.CreateObject("Msxml2.XMLHTTP")
        If Err Then
            ErrContent = "服务器不支持XML对象"
            Err.Clear
        End If
    End If
    If ErrContent<>"" Then
        GetInfo = "False||"&ErrContent
    Else
        http.Open "GET",GetPath,False
        http.Send
        If http.readyState<>4 Then
            GetInfo = "False||读取失败"
        Else
            GetInfo = "True||"&http.ResponseText
        End If
    End If
End Function

这个GetInfo(GetPath)就是使用XML通过GET方式访问,然后返回信息。参数GetPath就是要访问的地址,再往回看Str_get(Number)调用GetInfo()是这样的Str_get = GetInfo(Recv(a)&Recv(b)&Str_Para),再查找过程Recv(),也是在FS_Inc/Function.asp里

Function Recv(Str_Number)
    Dim Arr_Number,Str_Return,Temp_i
    Arr_Number = Split(Str_Number,chr(108))
    Str_Return = ""
    For Temp_i = LBound(Arr_Number) To UBound(Arr_Number)
        Str_Return = Str_Return & Chr(Arr_Number(Temp_i)+31)
    Next
    Recv = Str_Return
End Function

Recv(Str_Number)就是还原字符串,通过ASCII码加31。现在主要就是要知道Str_get(Number)里的Session("SessionCode")、Session("SessionComm")、Session("SessionComV")、Session("SessionComN")里什么值了,使用Response.Write写出来,得到

Session("SessionCode")="111-1111111111111"
Session("SessionComm")="73l85l85l81l27l16l16l81l66l84l84l81l80l83l85l15l71l80l80l84l86l79l15l79l70l85l16"
Session("SessionComV")="87l70l83l15l66l84l81"
Session("SessionComN")="79l70l88l84l15l66l84l81"

这些值通过Recv(Str_Number)还原,得到

Recv(Session("SessionComm"))="http://passport.foosun.net/"
Recv( Session("SessionComV"))="ver.asp"
Recv( Session("SessionComN"))="news.asp"

而且大家都知道 小写"L" 和"1"长得很像,想让人看到迷惑就放弃分析...哎

累人啊 .

 

同时我还发现了一个检测SESSION的地方  真不知道风讯程序员是干什么这么无聊

 

当然我要说这代码还是有一定的技术含量,但是我们写程序是为了要程序的执行效率高,而不是绕过去绕过来的增加服务器的负荷,在风讯的代码里面 这样绕来绕去的代码太多了,还有大量的代码由于什么问题注释掉了  也不说明,或者直接删除,代码巨大.  在数据库里面有些表直接没有用到..... 几个public里面大量重复代码.  我不知道为什么这样一个  私下悄悄收集用户信息的程序,一个绕来绕去增加服务器负担的程序,一个有着大量垃圾代码的程序,一个说着开源却故意让人看不懂的程序,可以如此招摇的走到今天,

我是一个新手,或许我还不会怎么写程序,但是我们写一个程序的原则是要具备可读性,高效性这道理我知道.记得N年前上学的时候老师就告诉我们,别人用几十行代码可以解决的你如果用了几百行代码,执行通过了你也是失败的,一个程序不仅要达到功能 还要满足效率...

算了,51休息随便写两句...工作又要开始忙了.....

是一款完全开源的程序,都毫无保留的完全开放源代码,用户不需额外安装其他DLL组件,其最大的特点是易用,js调用方法,简单直观。 系统介绍 : 系统功能完善,覆盖面广、扩展性强、负载能力好、模板调用非常灵活、管理方便,因此不仅适合于建设一般企业、政府、学校、个人等小型网站,同时也适合于建设地方门户、行业门户等大中型网站。 主要特性: 1、系统支持整站生成HTML静态 整个系统都可以生成静态HTML,有效的提高了系统的性能,不仅减轻服务器的负载提高搜索收录率,增加网站收录。同时也可以实现内容访问权限控制。 超多种生成文件命名形式可供选择,您可以随心所欲的设置要生成的扩展名,一切更可能的根据您的喜好DIY。 经过开发人员的优化,生成速度非常快,操作便捷。批量生成所有栏目及各个栏目各个时间段静态文件。 这种好处当您的栏目下有上万篇文章时越是明显,因为每次生成时不需要将所有页面重新生成一次,只需要根据预设定的生成最新更新的记录即可! 2、 网站模板与程序分离,支持多种标签调用,支持DIV+CSS,通过模板设计便可实现个性化网站 CMS实现了“网站模板与程序完全分离”的新概念, JS标签跨站调用,支持不同频道、栏目、专题、内容页应用不同的模 模板制作也非常方便,用户可以发布自己制作的模板,也可以下载安装他人分享的模板。 不需写任何一行代码,可以使用自己熟悉的工具,如Frontpage、Dreamwaver等来制作模板。用户完全可以自行设计模板,从而更好的体现用户的个性和特色。 3、上传文件管理,根据时间进行文件夹分类管理,很方便的进行文件清理,大大节约空间资源:系统后台可以根据管理员操作的项目来清理无效、过期的文件,从而大大节约了空间,节约了成本。 4、支持在线支付和充值卡充值功能,提供完善的财务管理功能和消费明细,每个栏目都可以进行完善的权限设定(浏览、查看、投稿发表等各种权限)和内容收费,可帮助用户轻松建立电子商务网站。 5 、支持多级管理权限控制,让网站多人维护更轻松 系统支持设置栏目管理员管理员,同时还可以根据需求分配不同的权限给他们进行管理,帮助用户轻松实现网站多人维护。 6、多重安全机制和权限控制,为网站安全保驾护航 支持后台Cookie加密、验证码IP锁定、IP白名单、防SQL注入、防跨站脚本、防脚本文件上传等多重安全机制,并且后台支持按级别访问权限,为网站的安全运营提供最强有力的保障。 7、百度站点地图功能,生成和自动更新提交站点最新信息,可以大大的提高收录量。 8、强大的(信息)采集系统,可采文章信息,方便用户系统性的收集信息,使用简单,只需懂点html基础代码即可;支持内容、列表分页采集、多重过滤和内容字符替换:支持远程保存图片、批量入库操作、可预览采集结果。 9、DIGG功能:Digg中文翻译为“鼎革”,或者“顶格”, 它采取的是用户驱动的机制,通过一种类似民主投票的方式来表示对信息的支持和认可,使得被digg多的信息脱颖而出,出现在digg页面上。众多用户对此功能的评价是时尚+实用。 10、评论功能:网站是供大家交流的平台,后台可以启用审核与非审核模式。当有不合适不合时的言论,管理员只需审核这些评论即可,这一功能,大大减少了管理员的工作量,维护了网站的正常运行。 可以对任意栏目内容附加评论,可对单一评论回复和支持不支持,支持是否开启评论,游客回复等; 11、强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 12、支持广告类型:gif图片广告、FLASH广告、文字广告、HTML代码广告。 支持7种广告位显示方式: 页内嵌入循环:就是将广告位直接置入某页面一固定位置,并在同一位置循环显示广告位中的所有正常广告条,这样,每刷新一次就会更替显示一个新的广告条 上下排列置入:从上到下竖排广告位中的所有正常广告条 左右排列置入:从左到右横排广告位中的所有正常广告条 向上滚动置入:向上滚动显示广告位中的所有正常广告条 向左滚动置入:向左滚动显示广告位中的所有正常广告条 弹出多个窗口:页面打开时同时弹出多个窗口,每个窗口内显示一个广告条,弹出数量跟该广告位中的正常广告条数一致 循环弹出窗口:页面打开时同时弹出一个窗口,在同一窗口内循环显示广告位中的正常广告,这样,每刷新一次就会在弹出窗口中更替显示一个新的广告条 广告文件支持: 图片、动画、纯文本、嵌入代码、植入网页 只需后台修改广告即可更新广告;可设置广告过期时间,通用于站内所有位置调用,让你的站点处处体现商机。 13、后台操作**志管理,完整记录所有后台操作,可通过**志查出非法操作记录提供证据。 14、保存远程图片,添加或采集信息时,可选择远程保存图片到本地服务器,防止对方删除图片或者服务器不正常时图片不显示。 15、水印缩略图,可
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值