discuz登录密码怎么验证
在构建我的vita系统的过程中,发现管理员管理的便捷与系统安全隐患之间的矛盾
全站采用cookie验证,比如wordpress的验证就是基于cookie的,由于cookie的明文传输
在局域网内极易被截获,或者这个vita在我不发骚的情况下存在了XSS漏洞的话,cookie被人截获,
在这种情况下,等于站点被人xxx了
另一种情况就是利用session来进行管理员身份的认证,但是由于php天生对于session的处理机制的问题,不能长时间保存,利用数据库构建的session系统开销太大,在这种情况下,我就只好先研究先下大家是怎么做的
于是分析了Discuz!的登陆验证机制
每个Discuz!论坛都有一个特定的authkey也就是Discuz!程序中的$_DCACHE['settings']['authkey']并且与用户的浏览器特征值HTTP_USER_AGENT一起组成了discuz_auth_key这个变量如下代码:
commoneincphp文件大概130行左右
$discuz_auth_key = md5($_DCACHE['settings']['authkey']$_SERVER['HTTP_USER_AGENT']);
在Discuz!论坛用户登陆以后会有一个cookie,名称为cdb_auth(cdb_是你站点的名称,可以设置不能在configincphp 文件中设置),Discuz!论坛就靠这个来判断一个用户是否是登陆状态,在分析这个值的内容之前,我们看下他是如何生成的
list($discuz_pw, $discuz_secques, $discuz_uid) = empty($_DCOOKIE['auth']) array('', '', 0) : daddslashes(explode("\t", authcode($_DCOOKIE['auth'], 'DECODE')), 1);
解释一下,获得的客户端的cookie经过Discuz!的函数authcode解密以后会得到用户输入的用户名,密码,在authcode函数中 会用到刚刚提到的$discuz_auth_key这个值,在不知道$discuz_auth_key的情况下,基本上靠cookie里的值反解出用户名 密码的几率为0,同样的,在生成cdb_auth就是相逆的一个流程,先获得用户输入的用户名,密码,在验证正确之后,用authcode加密,写入 cookie,很简单吧
以上就是Discuz!普通用户的登陆验证过程,写的不是很详细,大概能看明白就行
一、在发表新贴时出现该提示:要么是使用了norton产品 解决方法见下要么是页面停留时间过长(有时间限制一般是12小时) 导致验证字串失效了 Norton防火墙用户注意事项: 由于 Norton Internet Security 过于强大和苛刻的过滤,使用该防火墙软件产品的用户在其默认配置下访问 Discuz! 或其他网站将会产生一些问题
具体表现在:
1 由于硬性屏蔽了来路信息,导致 Discuz! 提交安全检查无法通过,在发帖等情况下提示为 未定义操作
2 由于误判断,将发帖时的 Discuz! 代码辅助提示判断为广告信息而不被执行 尽管如此, Norton Internet Security 仍不失为一款强大有效的网络安全产品,如果您访问 Discuz! 存在上述两种问题,我们建议您修改 Norton 的默认配置以避免可能给您带来的不便
方法如下(以 Norton Internet Security 2003 中文版为例):
1 选项 => Norton Internet Security => Web内容 => 浏览站点的信息 => 选择 "允许"(默认是"禁止")
2 禁止广告 => 配置(在窗口右下方) => 取消"启用禁止广告"的复选框 经过上述修改在安装有 Norton Internet Security 的机器上您将仍然可以顺畅的访问 Discuz! 及其他网站
二、在发表附件时出现该提示:由于论坛系统延时为30SEC,所以在上传附件的时候如果您网速较慢造成upload时间响应超过30秒后会出现上述错误提示,解决办法为:
1 如有多个附件要同时上传的,请先上传第1个附件,然后编辑该贴依次逐一添加剩余附件;
2 如果仅上传一个附件也出现同样的情况,请使用WinRAR将附件分卷压缩至单个500K或更小后依照前述方法逐一上传。 ======================================
诺顿等一些防火墙屏蔽了来路信息(一个很重要的访客,和cookie同方式提交)而使安全检查不能通过,所以部分装有防火墙的朋友们出现无法登陆论坛或不能正常发帖的现象,论坛提示:"未定义操作"!或“您的请求来路不正确或验证字串不符,无法提交。” 您访问论坛时存在上述问题,我们建议您修改 Norton 的默认配置以避免可能给您带来的不便方法如下(以 Norton Internet Security 2003 中文版为例):
1 选项 => Norton Internet Security => Web内容 => 浏览站点的信息 => 选择 "允许"(默认是"禁止")
2 禁止广告 => 配置(在窗口右下方) => 取消"启用禁止广告"的复选框 其他防火墙也是类似的,一般都是在“隐私控制”里取消“启动隐私保护”等等即可。
=================
还有,绝大多数原因是论坛服务器的问题。。或许等一会就好了
一、界面篇
首先,从界面上说,从整体上说,dz的界面比较美观,整体感好。
pw的界面给人一种模仿dz的感觉。同时在界面的细节上,看起来pw还是没有dz完美。
二、技术篇
从技术上说,pw和dz都使用了文件方式的数据缓存技术,通过把常用的数据表,比如论坛版面设置参数、基本参数等,生成静态缓存文件(根据条件触发更新或者手动更新),来减少数据库读取次数,提高效率,在这个方面两者非常相似。
1、模版技术
从模版技术上说,dz从25f版就开始采用的这种静态模版技术,从俺个人角度上说,还是非常适合论坛这种频繁更新的网站程序使用的。它通过动态生成静态模版的方式,解决了模版解析效率的问题。
同时,dz的这种模版方式,使得修改界面也比较容易,很直观。
而pw使用echo语句的这种方式(姑且称其为模版),就寒碜多了,要增加了一个if判断条件,就要折腾半天。添加了混合PHP代码的模板,在
dreamweaver中也容易被误操作删除。特别是如果修改的时候稍有不慎,很可能会使网页成了白板(没有输出),让俺每次修改pw模版无不如履薄冰,战战兢兢。。。。恐怕这也是第三方模版中,dz远远多于pw的原因吧。
不过pw目前在模版上也在改进,现在看verycms30就已经开始使用真正的模版技术,不过目前用的都还比较初级。。。
2、速度问题
从模版上看,两者的效率应该是差不多的,pw的模版其实就是直接包含的混合了PHP语句的一部分PHP文件,而dz的模版平时并不需要解析,所以效率应该是差不多的,但是网上总是有人声称网站使用dz的速度比pw慢,这方面本人没有测试过,不敢妄作评论。而且网站访问速度还是要受很多因素的影响,比如:本地网速、服务器带宽、心理。。。。。客观的评价还是很难的,除非使用专业技术手段。不过从官方网站的速度来看,明显还是pw占优啊
三、功能篇
1、登录方式:
pw的前台登录和后台登录采用了不同的Cookie方式,这样前后台分开的方式,有利于安全,也便于管理。后台帐号与前台帐号可以彻底分开。
而dz的前后台登录是用了一个帐号,尽管在进入后台的时候再次提示输入密码,不过还是不如pw方便。
2、分栏显示:
pw从501开始支持左右分栏显示了,然而功能太简单,不能树状显示子板块,此功能与其说有,不如说没有,弄的有点搞笑,属于半成品(倒是也符合pw的一贯特点--喜欢推出一些不完美的东西让大家修改)。
3、后台管理的效率:
pw的横向操作非常不错,大大节省了管理的难度,特别是在根据用户组设置权限的时候,非常的那个方便啊,这方面dz需要改进。
dz提供了一个方案的方式来解决后台重复操作问题,应该说也有一定道理,但是用起来不太容易上手,如果是设置一个单独的项目,就比较繁琐。
4、个人空间(文集)功能:
dz55内置了minispace个人空间功能,可以说自从discuz合并了supsite以后,在论坛功能的外展方面,占据了很大优势,吸引了很多个人网站的注意力。
5、防灌水技术
pw53终于接受了俺提出的新手注册第N贴以前发帖使用验证码的方式,这样既不影响老用户的使用,又通过验证码方式来限制恶意灌水机器人。dz未提供此功能,但是具有可以设定第N贴以后不用自定义问答的功能(dz的验证码很烂,根本看不清,用自定义问答似乎更好一些)。
在防止自动注册方面,pw和dz都使用了自定义问答方式防止自动注册的办法,具体原理很简单,两者实现的都差不多。区别在于,dz要求设置10个以上的问题才能生效,而pw只能设置一个问题。另外,还有一个区别,就是pw可以自定义问答中内部使用的form变量名,可能在防止恶意自动注册方面,会更加有效一些。pw的自定义问题只能用于注册,而dz的可以用在注册、发帖和短消息等方面。
6、前台管理功能
pw具备副版主功能,不过和一般的思路不同,副版主是由版主任命的,这样恐怕会导致权限混乱问题,所以也很少有人用这个功能。
在前台的管理功能中,pw更方便一些,不仅的主题列表中能进行管理,在帖子内容页面中的管理方式比dz用下拉方式更直观一些。而且在一个主题里面删除帖子,pw比dz直观多了。
7、所见即所得编辑器
dz55和pw53开始,不约而同的把所见即所得编辑器换成了ubbcode(两个论坛名称不一样,这里用个通俗一点的名称,暂称为UBBCode)方式的编辑器,而放弃了原来的HTML可视化编辑器。
8、附件上传和所见即所得功能:
pw的附件还是只能提交帖子上传以后才能进行图文混排,这方面dz要好的多,可以上传前就进行混排,方便多了
dz对不参与上传的附件还是显示太多信息,看起来影响美观(似乎是受vbb和phpbb的影响比较大)。而pw只是显示了“”字样和描述信息,但是更恶心的是,却把这些放到正文文字上方
,真是屡教不改啊
9、附件防盗链技术的分析:
dz采用了隐藏地址,和检测访问来源(可选)的办法来防盗链,应该说服务器负担比较大,效果还行,但不能彻底解决问题。
pw用的办法更简单,但更有效一些:就是定期或者自动修改附件目录名,应该说这是一个投资少见效快的好办法,技术上也很简单。不过最新的pw53版本也引入了隐藏附件地址的方式,后台也似乎无法关闭此项功能,似乎有点画蛇添足的味道了。。。。
10、广告功能:
dz比pw要好一些,广告功能更完善一些。比如贴内广告,在帖子下面的位置类似动网的位置,看起来更整齐一些,而pw的位置就让帖子布局显得比较凌乱,不好看。dz的贴间广告可以插入大的Google
Banner广告,或者其它形式的广告,展示效果很好。
相比dz,pw广告的插入位置更少一些,效果也差一些。
11、头像显示:
dz不能限制上传头像的长宽尺寸,只能限制总像素数,显得不够灵活,不如pw方便。而且超出了一定尺寸的头像,被自动缩放和拉伸了,看起来很难看。而且
dz还自动给头像加了一个边框,甚是恶心。可见dz把简单的事情给弄复杂化了,其实只要和pw一样,限制其尺寸,根本不需要拉伸。
12、附件尺寸限制:
pw只能设定所有附件的尺寸,而dz可以对个别格式的附件设定上传尺寸,比较灵活一些,特别适合一些flash网站,或者技术型网站(比如上传大尺寸图纸等)。
13、词语过滤:
pw只能使用普通方式过滤,不支持大小写(很简单的事情,官方就是不办,举手之劳啊)。
而dz不仅能识别大小写,而且具有了一定的模糊识别功能,相当不错了。当然,要是能直接支持正则表达式就更爽了。
14、自定义代码功能:
pw至今不支持自定义wincode代码,比较僵化。要增加功能,就只能修改js文件,太过麻烦。。。。
dz在这方面做的比较完美,要增加或者减少代码、修改播放界面尺寸都很容易,在后台设置一下就可以了
15、回收站功能:
dz可以设定自动清理,而pw不能
16、IP来源显示功能:
dz的IP地址和来源显示类似动网,看起来不太方便,需要点击小电脑图标才行。还是pw的IP地址来源显示看起来比较舒服一些。
17、防CC攻击:
pw早在432就增加了抗CC攻击功能,而且设置起来比较简单,新手也能看懂。当初俺就是因为这个原因才用了pw。
dz55虽然号称带有cc攻击防护,不过看起来比较难于理解,在后台找了半天也没找到,估计新手是操作不了的。当年某著名站长论坛(用dz)可就是被CC攻击搞的长期开不了张的,看起来dz的防CC攻击功能还有待改进。
18、备份功能
pw能支持对pw程序以外的数据表进行备份,而且判断标准不是根据表前缀。可以单独备份pw表以外的数据表,对于那些建立了新表的插件,备份数据超级容易,这方面比较人性化。
dz只是根据表前缀来进行备份,比如你设置一个表,叫做cdb_test,那么它会把它认为是论坛数据表而进行备份。但是如果你设置一个表,叫做test,那就自己想办法去吧。。。。
但是dz比pw强的是,备份可以压缩,压缩后下载和转存备份文件应该会节省巨大的空间和时间,对于超大型论坛应该是非常管用的。dz备份可以指定文件名,而且备份数据用十六进制表示(安全一些,但是占用空间会大一些),估计导入和恢复的中文内码问题就不会存在了。
19、文件和数据库校验:
dz内置了文件和数据库校验的功能,pw只是官方提供了一个文件校验工具,不过用起来有点莫明其妙,有时候提示使用的函数在php文件中根本不存在
20、主题推荐和相关贴功能:
dz通过qihoo实现了相关贴的功能,而且还可以支持主题推荐,这方面比pw强了很多。
21、模版和风格设置
phpwind可以在后台设置风格CSS文件,虽然新手不太容易上手,但确实还是比较方便的。
dz更进一步,把css的内容给解释成了表单的形式,让新手也能操作,不过带来的缺点更加大了:如果你想在CSS中增加控制(比如调整行间距等),就不知道该怎么弄了,只好去修改模版。好在dz还提供了一个附加功能:在后台可以直接修改模版,而且编辑界面中还带搜索功能,总算是亡羊补牢了
dz以较大优势在功能上超过pw,而且在dz有些胜过pw的功能上,好多都是以较大优势取胜。
资料来源:shop168com/article-3363html
用$_G['adminid']来判断,dz有用户组和管理组,在G中都包含这些信息,比如$_G['adminid'] == 1,这就是标识管理组为1,至于每个管理组的id多少,你在后台管理组就能看得到,也可以去数据库查看。
不懂继续提问
——长沙微构网络
判断用户是否已认证,是则调用认证资料中的自我介绍栏目。
其中css部分需要自己对应使用风格和添加位置修改宽度和margin参数。
PS:其中$post['bio']为调用自我介绍内容,可以自行更换。
另外,如果调用不出可自行在后台界面设置>帖子内容页>设置用户信息显示的位置中开启对应的栏目在帖内左侧显示。
增加下列代码到viewthreadhtm文件中你想增加的位置
并上传下面的到风格目录并修改下列代码中CSS部分的vdatapng路径:
代码中SELECT
verify6
FROM
里面的verify6表示你认证代号,在后台
--
用户
--
认证设置,里面可以看到认证代号。
实名认证资料 &
amp;nbsp;$post['bio']
复制代码
2011年8月15日
13:05:51
更新教程
有人说不知道加在哪里,我就简单介绍下默认风格下把该代码加到头像下方。
首先打开默认风格目录中forum下的viewthread_nodehtm文件,查下段代码:
{lang member_avatar_banned}
$post[avatar]
$post[groupicon]
{$post[authortitle]}
复制代码
上面这段代码是帖内左侧头像部分的代码。最后一行是显示会员用户组的。
把我发的那段认证资料代码加到这段下面,然后修改CSS部分的margin:
0px
0px
5px
0px;
width:
240px;
使宽度和边距适应风格为止。OK,就这么多了,不同风格添加方法都差不多,找到头像位置代码即可。
小编极力推荐:
网页制作编辑器大全
PHPwind75属于PHP平台
Discuz!NT30属于ASPNET平台
PHP平台执行效率高,免费。
ASPNET平台安全性相对高,不免费,微软的,想免费除非用盗版
PHPWind 75已经是成熟的产品
Discuz!NT30属于刚刚发展的初期(但也同样功能齐全了)
PHPWind 75模板插件丰富
Discuz!NT30相比较PHP平台模板和插件还是相对来说少很多
PHPWind 75是他们公司的主打产品
Discuz!NT30并不是他们公司的主打产品,他们的主打产品是discuz!71,同样是做PHP平台应用起家(Discuz!NT30只是为了适应市场需求)
PHPWind 75官方讨论的人多
Discuz!NT30讨论该版本的人远没有PHPWind 75的人多
以上是我总结的几点。哪个程序没有漏洞呢?偶尔的一次数据被灌太正常了, 爆米花小说 你不可能同时用两个论坛程序吧?PHPWind 75出现重大灾难的时候你经历没经历到呢?给人家比较程序千万不能把自己的印象说出来,第一会误导人,第二会左右到别人的选择。
一定要公平的比较~~
0条评论