官方首页 | 无图版 | BBS首页
PJBlog2最新版本下载|升级包(2007.12.23) Bo-Blog V2.1.0 到 PJBlog 2.7 的转换程序 WP 2.3 到 PJ 2.6/2.7 的转换程序 手把手教您在PJForum上传图片
PJBlog技术支持论坛使用问题总索引 手术式讲解视频教程如何制作 PJblog2.7.05终极资源包电驴免费下载 风格使用区-HOT! 凤凰行动开始!
 33 1234
发新话题
打印

[拓展源码] [ 原创][2008/05/01 更新]让我们的pjblog后台更安全增加后台通过二级密码登入功能

本主题由 evio 于 2008-5-7 07:34 移动 本主题被作者加入到个人文集中

[ 原创][2008/05/01 更新]让我们的pjblog后台更安全增加后台通过二级密码登入功能

插件名称:让pjblog后台更安全,增加后台通过二级密码登入功能 (多谢戒聊大叔的热情帮助,功能已全部完善,安全行性可测
=================================================
2008/05/01 更新 经测试,请把升级文件升级后,将类型“是/否”改为“文本”,然后删除3个字段内的值就不会出现原二级密码的错误。
==================================================

===========================================================================
(2008/04/16更新)
现将二级密码和密码保护2个功能文件打包下载,请仔细阅读里面说明,按相应操作进行。
基本上如果没有修改过里面文件内容的可以直接覆盖,没有问题的。
下载:
二级密码和密码保护功能文件.rar (13.18 KB)
===========================================================================

插件作者:evio
发布时间:2008-04-13
适用版本:V2.75
修改源码:是
下载地址:升级文件: update.rar (1018 Bytes)
插件演示:http://www.levevio.cn/evio/article.asp?id=144
插件简介:让我们的pjblog后台更安全,增加后台二级密码等入功能.
使管理员登入后台时必须提供二级密码才可登入,类似独立密码。
在用户资料页面,只有管理员才出现二级密码修改选项,其他普通用户没有该选项。
这使得后台更加安全,即使被猜到管理员密码,也无法登入后台。
4/14前修改的朋友,请修改回来,修正了管理员直接未认证就可以修改二级密码的BUG
管理员页面:


普通用户页面:


修改的文件只有2个  member.asp   control.asp
修改方法入下:
打开control.asp
找到
复制内容到剪贴板
代码:
<div style="padding:16px;padding-top:40px"><b style="margin-left:-76px;">管理员密码: </b>
<input name="adpass" type="password" size="20" style="border:1px solid #999"/></div>
下面增加
复制内容到剪贴板
代码:
<div style="padding:16px;padding-top:0px"><b style="margin-left:-76px;">二级密码: </b>
<input name="sepass" type="password" size="20" style="border:1px solid #999"/></div>
打开member.asp
找到
复制内容到剪贴板
代码:
<tr><td align="right" width="85"><strong>密码重复:</strong></td><td align="left" style="padding:3px;"><input name="Confirmpassword" type="password" size="18" class="userpass" maxlength="16"/> 必须和上面的密码一样</td></tr>
下面加入
复制内容到剪贴板
代码:
<%
dim sepassword1
sepassword1=blog_Mem("mem_Sepassword")'sepassword1为原数据库内的值
if stat_admin then%>
<%if (sepassword1<>"" or sepassword1<>null or sepassword1<>empty) then
%>
<tr><td align="right" width="85"><strong>原二级密码:</strong></td><td align="left" style="padding:3px;"><input name="sepassword2" type="password" size="18" class="userpass" maxlength="16"/><font color="#FF0000">&nbsp;*</font></td></tr>
<tr><td align="right" width="85"><strong>新二级密码:</strong></td><td align="left" style="padding:3px;"><input name="sepassword3" type="password" size="18" class="userpass" maxlength="16"/><font color="#FF0000">&nbsp;*</font></td></tr><%else%>
<tr><td align="right" width="85"><strong>二级密码:</strong></td><td align="left" style="padding:3px;"><input name="sepassword" type="password" size="18" class="userpass" maxlength="16"/><font color="#FF0000">&nbsp;*</font></td></tr><%end if%><%end if%>
找到
复制内容到剪贴板
代码:
dim UID,username,Oldpassword,password,Confirmpassword,Gender,email,homepage,QQ,HideEmail,checkUser
后面直接加上
复制内容到剪贴板
代码:
,sepassword,sepassword1,sepassword2,sepassword3
找到
复制内容到剪贴板
代码:
Confirmpassword=trim(CheckStr(request.form("Confirmpassword")))
下面加上
复制内容到剪贴板
代码:
if stat_admin then
if (sepassword1<>"" or sepassword1<>null or sepassword1<>empty) then
sepassword2=trim(CheckStr(request.form("sepassword2")))
sepassword3=trim(CheckStr(request.form("sepassword3")))
else
sepassword=trim(CheckStr(request.form("sepassword")))
end if
end if
找到
复制内容到剪贴板
代码:
if password<>Confirmpassword then
         ReInfo(0)="错误信息"
         ReInfo(1)="<b>密码验证失败!请重新输入。</b>
<a href=""javascript:history.go(-1);"">单击返回</a>"
         ReInfo(2)="ErrorIcon"
         SaveMem=ReInfo
         exit function
  end if  
end if
下面加上
复制内容到剪贴板
代码:
if stat_admin then
     if (sepassword1<>"" or sepassword1<>null or sepassword1<>empty) then
         if len(sepassword2)=0 or (len(sepassword2)<6 or len(sepassword2)>16) then
                 ReInfo(0)="错误信息"
                 ReInfo(1)="<b>请输入6到16位原二重密码!</b>
<a href=""javascript:history.go(-1);"">单击返回</a>"
                 ReInfo(2)="WarningIcon"
                 SaveMem=ReInfo
                 exit function
             end if  
             if len(sepassword3)=0 or (len(sepassword3)<6 or len(sepassword3)>16) then
                 ReInfo(0)="错误信息"
                 ReInfo(1)="<b>请输入6到16位新二重密码!</b>
<a href=""javascript:history.go(-1);"">单击返回</a>"
                 ReInfo(2)="WarningIcon"
                 SaveMem=ReInfo
                 exit function
            end if  
    else
        if len(sepassword)=0 or (len(sepassword)<6 or len(sepassword)>16) then
                 ReInfo(0)="错误信息"
                 ReInfo(1)="<b>请输入6到16位二重密码!</b>
<a href=""javascript:history.go(-1);"">单击返回</a>"
                 ReInfo(2)="WarningIcon"
                 SaveMem=ReInfo
            exit function
         end if
    end if
end if
找到
复制内容到剪贴板
代码:
set checkUser=conn.execute("select top 1 * from blog_Member where mem_id="&UID&" and mem_Name='"&CheckStr(memName)&"'")
if checkUser("mem_Password")<>SHA1(Oldpassword&checkUser("mem_salt")) then
         ReInfo(0)="错误信息"
           ReInfo(1)="<b>用户名与密码错误</b>
<a href=""javascript:history.go(-1);"">请返回重新输入</a>"
         ReInfo(2)="ErrorIcon"
         SaveMem=ReInfo
         exit function
下面加上
复制内容到剪贴板
代码:
else
      dim strSalt
      strSalt=checkUser("mem_salt")
然后下面的从Conn.Execute开始到最后的所有语句替换成
复制内容到剪贴板
代码:
Conn.Execute("update blog_member set mem_Sex="&Gender&",mem_Email='"&email&"',mem_HideEmail="&HideEmail&",mem_HomePage='"&homepage&"',mem_QQ='"&QQ&"',mem_mbquestion='"&mbquestion&"',mem_mbanswer='"&mbanswer&"' where mem_id="&UID&" and mem_Name='"&CheckStr(memName)&"'")
        SQLQueryNums=SQLQueryNums+1
        if len(password)>0 then
      password=SHA1(password&strSalt)
          if stat_admin then
            if (sepassword1<>"" or sepassword1<>null or sepassword1<>empty) then
'response.write sepassword1&"
"
'response.write SHA1(sepassword2&strSalt)
'response.end
                  if sepassword1<>SHA1(sepassword2&strSalt) then
                  response.write "<Script language='JavaScript'>window.alert('错误!');history.back(-1);</Script>"
                  response.end
                  end if
                sepassword3=SHA1(sepassword3&strSalt)
                    Conn.Execute("update blog_member set mem_Password='"&password&"',mem_Sepassword='"&sepassword3&"',mem_salt='"&strSalt&"' where mem_id="&UID&" and mem_Name='"&CheckStr(memName)&"'")
                  
                  
                  
                  
                  
            else
          sepassword=SHA1(sepassword&strSalt)
          Conn.Execute("update blog_member set mem_Password='"&password&"',mem_Sepassword='"&sepassword&"',mem_salt='"&strSalt&"' where mem_id="&UID&" and mem_Name='"&CheckStr(memName)&"'")
            end if
          else
          Conn.Execute("update blog_member set mem_Password='"&password&"',mem_salt='"&strSalt&"' where mem_id="&UID&" and mem_Name='"&CheckStr(memName)&"'")
          end if
      SQLQueryNums=SQLQueryNums+1
      logout(true)
          ReInfo(0)="用户修改成功"
          ReInfo(1)="<b>你的资料已经修改成功</b>
由于你更改了密码所以必须 <a href=""login.asp"">重新登录</a>"
      ReInfo(2)="MessageIcon"
      SaveMem=ReInfo
          Session(CookieName&"_LastDo")="EditUser"
      exit function
   end if
        getInfo(2)
        ReInfo(0)="用户修改成功"
        ReInfo(1)="<b>你的资料已经修改成功</b>
<a href=""default.asp"">返回首页</a>"
        ReInfo(2)="MessageIcon"
    SaveMem=ReInfo         
        Session(CookieName&"_LastDo")="EditUser"
  end function        %>
最后用数据库文件升级
-----------------------
同样,有什么BUG,请在我站上留言
http://www.levevio.cn/evio/LoadMod.asp?plugins=AJAXGuestBook5

[ 本帖最后由 evio 于 2008-5-3 14:50 编辑 ]

TOP

哈哈。坐上沙发了。
PJ插件版,已解决问题请将标题修改为已解决。
牵手情侣礼品专卖屋,情侣服装,情侣手套,情侣项链,情侣戒指,情侣内裤,情侣家居,女生饰品,化妆盒,欢迎您的光临!http://shop33249096.taobao.com/

TOP

戒聊大叔真勤快~

TOP

哇,又一实用功能啊。。。


板凳板凳。。。。。。。。

TOP

支持原创!

TOP

麻烦,支持下
『沙之轩』cosh's blog
诚招建博半年以上/更新不断/友情连接

TOP

谢谢你们支持,特别感谢戒聊为我解决了一个难题。互相学习哈~

TOP

很不错的功能

TOP

我一直在想后台登陆太简单啦,这就出来了. 谢谢谢谢.
My blog:http://www.ynFans.Net
我愛PJ!

TOP

绝对要支持...

TOP

 33 1234
发新话题