dedecms添加登錄管理認(rèn)證碼的方法
本文實例講述了dedecms添加登錄管理認(rèn)證碼的方法。分享給大家供大家參考。具體分析如下:
隨著dedecms用的人越來越多,也就引來各種關(guān)注,然后就各種漏洞、入侵,最近又爆出了一個堪稱全版本都有的漏洞,的確,我googlehack了一下,基本上 5.5-5.7 的版本測試都可以,不過MD5是個硬傷,多余的話就不說了.
其實就是在后臺登錄界面添加個表單驗證而已,管理認(rèn)證,應(yīng)該知道吧,動易、帝國的那種,本地字符驗證,而不是數(shù)據(jù)庫驗證,所以SQL查詢不了,入侵時碰到這種登錄最糾結(jié),最無奈的.
首先看看,我們要改的是這2個文件/(后臺路徑)/templets/login.htm 這是后臺登錄界面,/(后臺路徑)/login.php 登錄消息的處理文件.
我們先來改login.htm文件,可能大家的模板不一樣,不過自己改改吧,這是驗證表單是否為空的代碼,可以直接放在HTML里,也可以link到JS文件里,代碼如下:
<!--
var closestr=0;
function SetFocus() {
var df = document.form1;
if(df.userid.value == '')
df.userid.focus();
else
df.userid.select();
}
function CheckForm() {
var df = document.form1;
if(df.userid.value == '') {
alert('請輸入用戶名!');
df.userid.focus();
return false;
}
if(df.pwd.value == '') {
alert('請輸入密碼!');
df.pwd.focus();
return false;
}
if (df.validate.value == '') {
alert ('請輸入您的驗證碼!');
df.validate.focus();
return(false);
}
if (df.vacodes.value == '') {
alert ('請輸入您的認(rèn)證碼!');
df.vacodes.focus();
return(false);
}
}
//-->
</script>
這是我的form框架和input提交,其實那個認(rèn)證碼的input 直接復(fù)制用戶名的 input或密碼的input就可以,改下name名就可以了,代碼如下:
<input type="hidden" name="gotopage" value="<?php if(!empty($gotopage)) echo $gotopage;?>" />
<input type="hidden" name="dopost" value="login"/>
<ul>
<li><span>用戶名:</span>
<input type="text" name="userid" class="input_out" maxlength="20" style="width:148px;" onfocus="this.className='input_on';this.onmouseout=''" onblur="this.className='input_off';this.onmouseout=function(){this.className='input_out'};" onmousemove="this.className='input_move'" onmouseout="this.className='input_out'"/>
</li>
<li><span>密 碼:</span>
<input type="password" name="pwd" class="input_out" maxlength="20" style="width:148px;" onfocus="this.className='input_on';this.onmouseout=''" onblur="this.className='input_off';this.onmouseout=function(){this.className='input_out'};" onmousemove="this.className='input_move'" onmouseout="this.className='input_out'"/>
</li>
<li><span>認(rèn)證碼:</span>
<input type="password" name="vacodes" class="input_out" maxlength="20" style="width:148px;" onfocus="this.className='input_on';this.onmouseout=''" onblur="this.className='input_off';this.onmouseout=function(){this.className='input_out'};" onmousemove="this.className='input_move'" onmouseout="this.className='input_out'"/>
</li>
<li><span>驗證碼:</span>
<input name="validate" type="text" id="vdcode" style="width:50px;text-transform:uppercase;" onfocus="this.className='input_on';this.onmouseout=''" onblur="this.className='input_off';this.onmouseout=function(){this.className='input_out'};" onmousemove="this.className='input_move'" onmouseout="this.className='input_out'" class="input_out"/>
<img id="vdimgck" src="../include/vdimgck.php" alt="看不清?點擊更換" align="absmiddle" style="cursor:pointer" onclick="this.src=this.src+'?'"/></li>
<span> </span>
<input name='Submit' type='image' style='width:60px; HEIGHT: 25px;' src='img/submit.gif' width='60' height='27'/>
</li>
</ul>
</form>
然后就是提交驗證(/login.php)了,代碼第50行就有注釋 //登錄檢測,我們把驗證內(nèi)嵌在如下代碼:
$res = $cuserLogin->checkUser($userid, $pwd);
//success
if ($res == 1) {
//里,如下。
if (!emptyempty($userid) && !emptyempty($pwd)) {
$res = $cuserLogin->checkUser($userid, $pwd);
//success
if ($res == 1) { //嵌套到這里面!
$uservacodes = $_POST['vacodes']; //取出vacodes內(nèi)容放入另一個變量
if ($uservacodes != '認(rèn)證碼自定義') { //自行修改認(rèn)證碼自定義內(nèi)容!
ResetVdValue();
ShowMsg('認(rèn)證碼不正確!', 'login.php', 0, 1000); //不等于跑這里
die;
} else { //等于就跑這里
$cuserLogin->keepUser();
if (!emptyempty($gotopage)) {
ShowMsg('成功登錄,正在轉(zhuǎn)向管理管理主頁!', $gotopage);
die;
} else {
$uservacodes = $_POST['vacodes'];
ShowMsg('成功登錄,正在轉(zhuǎn)向管理管理主頁!', 'index.php');
die;
}
}
解釋:先驗證圖片驗證碼,在驗證用戶名,在驗證密碼,最后驗證認(rèn)證碼,以免認(rèn)證碼被爆破.
注意:if的塊語句{}一定要對應(yīng),不然會出錯,可以用Notepad++來修改.
也可以把認(rèn)證碼比較那里設(shè)置成變量,鏈接到包含的文件里,比如config文件,自己操作吧,個人博客我就不講究互動性了,其他的網(wǎng)站源碼也大同小異,找到登錄界面和提交頁面,修改之即可.
希望本文所述對大家的dedecms建站有所幫助。
上一篇:dedecms自定義模型提示:Call to a member function GetInnerText()的解決方法
欄 目:dedecms
下一篇:dedecms調(diào)用當(dāng)前欄目ID與當(dāng)前欄目頂級ID的方法
本文標(biāo)題:dedecms添加登錄管理認(rèn)證碼的方法
本文地址:http://www.jygsgssxh.com/a1/dedecms/12308.html
您可能感興趣的文章
- 08-05Dedecms文件目錄結(jié)構(gòu)解說(能知道織夢每個文件有什么用)
- 08-05Dedecms5.7版ckeditor網(wǎng)頁編輯器添加中文字體
- 08-05織夢DedeCMS獲取當(dāng)前欄目文章數(shù)量
- 08-05織夢模板如何添加和調(diào)用自定義字段的方法
- 08-05DedeCMS后臺模塊列表顯示空白的解決辦法
- 08-05DedeCMS自定義字段圖片調(diào)用的問題{dede:img ...}解決方法
- 08-05織夢DedeCMS調(diào)用顯示discuz里面主題的方法
- 08-05常用的織夢dedecms安全設(shè)置集合整理
- 08-05織夢教程:后臺編輯器添加中文字體方法
- 08-05dedecms教程:上傳圖片相對路徑改成絕對路徑方法


閱讀排行
本欄相關(guān)
- 08-05dede:channel currentstyle 失效問題,調(diào)用子
- 08-05網(wǎng)站底部版權(quán)符號怎么打出來?
- 08-05Dedecms文件目錄結(jié)構(gòu)解說(能知道織夢
- 08-05織夢DedeCMS獲取當(dāng)前欄目文章數(shù)量
- 08-05Dedecms5.7版ckeditor網(wǎng)頁編輯器添加中文
- 08-05織夢模板如何添加和調(diào)用自定義字段
- 08-05DedeCMS后臺模塊列表顯示空白的解決辦
- 08-05DedeCMS自定義字段圖片調(diào)用的問題{de
- 08-05織夢DedeCMS調(diào)用顯示discuz里面主題的方
- 08-05限制織夢會員每天投稿數(shù)量方法
隨機閱讀
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實例總結(jié)
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10使用C語言求解撲克牌的順子及n個骰子


