discuz的验证码是怎样被破解的
discuz验证方式一大堆,人家换一种验证方式你必须得跟着破解,所以不可能完全破解的,可以考虑打码平台识别,有完全破解市面上所有discuz验证码的技术你能自己开发一个discuz了
discuz邮件设置
描述:Discuz!电子邮件功能对站长来说非常重要。如果用户忘记了密码,他们可以通过电子邮件直接找回密码。如果你设置了电子邮件功能,仔细解释会更方便。一,Discuz!支持以下三种邮件发送方法:
1通过PHP函数的sendmail发送(推荐这种方式)
描述:
这样用PHP的函数发送邮件,需要在服务器上安装邮件系统。一般虚拟主机都有内置的邮件系统。所以推荐这种方法。
2通过套接字连接到SMTP服务器发送(支持ESMTP验证)
描述:
该方法适用于win或linux服务器(适用于虚拟主机或独立主机),支持ESMTP验证。站长需要有一个SMTP服务器,比如Foxmail的SMTP服务器。
3通过PHP函数SMTP发送邮件(仅在Windows主机下有效,不支持ESMTP验证)
注意:该方法仅适用于win主机。对系统环境要求高,不推荐。
用户可以根据自己的情况选择使用哪种方式。
其次,邮件头的分隔符分为三种类型
1使用CRLF作为分隔符(通常是Windows主机)
2使用LF作为分隔符(通常是Unix/Linux主机)
3使用CR作为分隔符(通常是Mac主机)
注意:这里,标题的分隔符是根据您使用的邮件服务器系统选择的。
三、下面我们以第二种邮件发送方式为例,详细介绍一下设置邮件功能的全过程:
1首先我们需要注册一个邮箱,比如Foxmail的邮箱。电子邮件名称是hellensu@foxmailcom
2网站创始人登录Discuz!背景=>:网站管理员=>;设置,选择“通过SOCKET发送到SMTP服务器(支持ESMTP认证)”,如下图所示:
点击“添加新的SMTP服务器”,然后填写SMTP服务器、SMTP端口、身份验证、发件人电子邮件地址、SMTP身份验证用户名和SMTP身份验证密码等信息。您可以在这里添加多个SMTP服务器。
SMTP服务器:填写SMTP服务器的地址,如smtpfoxmailcom
SMTP端口:默认一般是25。你可以根据你使用的不同SMTP端口来填写。
注意:建议您在此选择“是”进行验证。
发件人电子邮件地址:填写发件人的电子邮件地址。
SMTP认证用户名:填写的邮箱地址同上。
SMTP认证密码:填写邮箱的密码。
3邮件头的分隔符是LF。
在收件人地址中包含用户名:选择“是”将在收件人的电子邮件地址中包含站点用户名。
阻止电子邮件中的所有错误提示:选择“是”将阻止电子邮件中的所有错误提示。
四。测试
要知道设置的邮件功能成员能否正常接收邮件,需要测试一下。
3gif(1218KB,下载次数:64)
下载附件并保存到相册中。
上传于2012年3月27日13:59
填写发件人和收件人的邮箱后,点击“检测电子邮件发送设置”。如果邮件设置成功,会提示如下图所示:
我们结婚吧!--{block/98}-->的短码,把这个短码放在模板中才行(在设置这个diy调用的时候,在数据模块中设置好html结构,也就是你现在直接放在模板中的代码)。
怎么安装Discuz插件?
1安装前提条件:必须拥有FTP好了回归正题,模板安装步骤1、首先找模板插件,下载到自己电脑,解压!打开解压后的文件夹,会发现有几个文件夹几个文件,标注DIY的是模板内置导入的DIY文件,建议直接取出保存在本地电脑,在后面安装完模板美化的时候会用到。而一些长长的文件英文名一般就是模板文件夹了,模板文件夹不会以中文命名。
2、将模板文件夹上传到模板目录中。
一般空间都会支持压缩包压缩和解压,有的支持rar,有的支持zip,不过都一样,支持哪个压缩哪个格式。如果你的空间不支持在线压缩解压,那么逐个上传也是可行的,不过如果对模板插件里面文件多的,那么相应消耗的时间要久一点。
3然后打开FTP软件,进入论坛根目录,根目录可以咨询自己的空间商。将文件上传到根目录下的template中。上传完后,进入后台-界面-风格管理,找到上传的模板,安装即可
在构建我的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!普通用户的登陆验证过程,写的不是很详细,大概能看明白就行
0条评论