做了一个discuz的顶贴机,发现原版的discuz7.2可以登录,我要用的论坛就登录不了,仔细查看,发现了问题,希望求解,感觉像是对提交的密码明文加密的意思吧源地址为http://bbs.runsky.com/logging.php?action=login发现主要问题在于<form method="post" name="login" id="loginform" class="s_clear" onsubmit="pwmd5('password3');pwdclear = 1;ajaxpost('loginform', 'returnmessage', 'returnmessage', 'onerror');return false;" action="logging.php?action=login&amp;loginsubmit=yes">var pwmd5log = new Array();
function pwmd5() {
numargs = pwmd5.arguments.length;
for(var i = 0; i < numargs; i++) {
if(!pwmd5log[pwmd5.arguments[i]] || $(pwmd5.arguments[i]).value.length != 32) {
pwmd5log[pwmd5.arguments[i]] = $(pwmd5.arguments[i]).value = hex_md5($(pwmd5.arguments[i]).value);
}
}希望知道pwmd5的具体含义

解决方案 »

  1.   


    function pwmd5() {
      numargs = pwmd5.arguments.length;//获取此函数参数的长度
      for(var i = 0; i < numargs; i++) { //遍历每个参数
        if(!pwmd5log[pwmd5.arguments[i]] || $(pwmd5.arguments[i]).value.length != 32) {//如果pwmd5log中不存在此参数 或 这个参数的长度不为32
          pwmd5log[pwmd5.arguments[i]] = $(pwmd5.arguments[i]).value = hex_md5($(pwmd5.arguments[i]).value);//对这个参数执行hex_md5方法, 并赋值给pwmd5log中(键值为未加密前的内容)
        }
      }
    }
    关键是hex_md5方法
      

  2.   

    pwmd5()看函数名字,应该是对password进行MD5加密。var pwmd5log = new Array();
    function pwmd5() {
    numargs = pwmd5.arguments.length;//获取参数长度
    for(var i = 0; i < numargs; i++) {//遍历参数
    if(!pwmd5log[pwmd5.arguments[i]] || $(pwmd5.arguments[i]).value.length != 32){
    //该密码未登录或者密码长度不等于32则继续
    pwmd5log[pwmd5.arguments[i]] = $(pwmd5.arguments[i]).value = hex_md5($(pwmd5.arguments[i]).value);
    //对密码($(pwmd5.arguments[i]).value)进行MD5加密,返回十六进制数据,把值赋给pwmd5log[pwmd5.arguments[i]]、$(pwmd5.arguments[i]).value 
    }
    }
      

  3.   

    各位大大,我找到了hex_md5的函数,就是标准的discuz的目录里边的文件md5.js我想知道,现在这个页面在提交是onsubmit="pwmd5('password3'),这个的意思是不是吧password3进行加密然后发送出去的,我很奇怪的是通过Http Analyzer 抓到的包显示post的密码是明文呀
      

  4.   

    注意这句话hex_md5($(pwmd5.arguments[i]).value),并不是直接对参数加密的,参数只不过是id而已。
    至于后面那个问题帮不了你。
      

  5.   


    password3的value的没有加密, 只是作为参数在submit时执行了这个方法. 
      

  6.   

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title> 大连论坛-大连天健网 大连|交友|房产|汽车|大学|音乐|足球|电视台|电影|旅游|生活</title>
    <meta name="keywords" content="大连,交友,房产,汽车,大学,音乐,足球,电视台,电影,旅游,生活" />
    <meta name="description" content=" 大连论坛-大连天健网 大连,交友,房产,汽车,大学,音乐,足球,电视台,电影,旅游,生活 - Discuz! Board" />
    <meta name="generator" content="Discuz! 7.2" />
    <meta name="author" content="Discuz! Team and Comsenz UI Team" />
    <meta name="copyright" content="2001-2009 Comsenz Inc." />
    <meta name="MSSmartTagsPreventParsing" content="True" />
    <meta http-equiv="MSThemeCompatible" content="Yes" />
    <meta http-equiv="x-ua-compatible" content="ie=7" />
    <link rel="archives" title="大连论坛-大连天健网" href="http://bbs.runsky.com/archiver/" />
    <link rel="stylesheet" type="text/css" href="forumdata/cache/style_7_common.css?Py1" />
    <script type="text/javascript">var STYLEID = '7', IMGDIR = 'images/default', VERHASH = 'Py1', charset = 'utf-8', discuz_uid = 0, cookiedomain = '', cookiepath = '/', attackevasive = '0', disallowfloat = 'login|register|newthread|reply', creditnotice = '1|发帖分|,2|银行存款|,3|天健币|,4|威望|,5|玩乐豆|', gid = 0, fid = parseInt('0'), tid = parseInt('0')</script><script src="forumdata/cache/common.js?Py1" type="text/javascript"></script>
    <script src="/templates/runsky/images/jquery.min.js" type="text/javascript"></script>
    <script src="/templates/runsky/images/jquery.lazyload.js" type="text/javascript"></script>
    <script type="text/javascript">
    var JQ = jQuery.noConflict();
    if(top == self) {
    JQ(document).ready(function(){
    JQ("img").lazyload({
    placeholder : "/templates/runsky/images/grey.gif",
    effect : "fadeIn",
    threshold : 400
    });
    });
    }
    </script>
    <link rel="stylesheet" type="text/css" href="http://xm.runsky.com/common/style/site/bbsadv.css" />
    </head><body id="logging" onkeydown="if(event.keyCode==27) return false;"><div id="append_parent"></div><div id="ajaxwaitid"></div><div id="header">
    <div class="wrap s_clear">
    <div id="ad_headerbanner"></div>
    <div class="discuz6_hd">
    <div id="umenu">
    <a href="register.php" onclick="showWindow('register', this.href);return false;" class="noborder">注册</a>
    <a href="logging.php?action=login" onclick="showWindow('login', this.href);return false;">登录</a>
    </div>
    <div id="menu">
    <ul><li>
    <span class="frameswitch">
    <script type="text/javascript">
    if(top == self) {
    document.write('<a href="frame.php?frameon=yes" target="_top" class="frameon">分栏模式<\/a>');
    } else {
    document.write('<a href="frame.php?frameon=no" target="_top" class="frameoff">平板模式<\/a>');
    }
    </script>
    </span>
    </li>
    <li class="menu_1"><a href="index.html" hidefocus="true" id="mn_index">论坛</a></li><li class="menu_2"><a href="search.php" hidefocus="true" id="mn_search">搜索</a></li><li class="menu_6" id="00XM21" onmouseover="showMenu({'ctrlid':this.id})"><a href="#" hidefocus="true"  class="dropmenu">我的</a></li><li class="menu_3" id="pluginnav" onmouseover="showMenu({'ctrlid':this.id,'menuid':'plugin_menu'})"><a href="javascript:;" hidefocus="true" class="dropmenu">插件</a></li><li class="menu_4"><a href="faq.php" hidefocus="true" id="mn_faq">帮助</a></li><li class="menu_9"><a href="member.php?action=list" hidefocus="true" id="mn_member_1">会员</a></li></ul>
    <script type="text/javascript">
    var currentMenu = $('mn_') ? $('mn_') : $('mn_index');
    currentMenu.parentNode.className = 'current';
    </script>
    </div>
    </div></div>
    <div id="myprompt_menu" style="display:none" class="promptmenu">
    <div class="promptcontent">
    <ul class="s_clear"><li style="display:none"><a id="prompt_pm" href="pm.php?filter=newpm" target="_blank">私人消息 (0)</a></li><li style="display:none"><a id="prompt_announcepm" href="pm.php?filter=announcepm" target="_blank">公共消息 (0)</a></li><li style="display:none"><a id="prompt_systempm" href="notice.php?filter=systempm" target="_blank">系统消息 (0)</a></li><li style="display:none"><a id="prompt_friend" href="notice.php?filter=friend" target="_blank">好友消息 (0)</a></li><li style="display:none"><a id="prompt_threads" href="notice.php?filter=threads" target="_blank">帖子消息 (0)</a></li></ul>
    </div> </div><!-- 独立广告位 By Zmor -->
    <div id="bbsadv_public_header" class="wrap s_clear"></div>
    <div class="bbsadv_s_clear"></div></div>
    <div id="nav"><a href="index.html">大连论坛-大连天健网</a> </div>
    <div id="wrap" class="wrap s_clear">
    <div class="main"><div class="content nofloat">
    <div class="fcontent" id="main_messaqge">
    <div id="layer_login">
    <h3 class="float_ctrl">
    <em id="returnmessage">用户登录</em>
    <span></span>
    </h3>
    <div class="postbox">
    <form method="post" name="login" id="loginform" class="s_clear" onsubmit="pwmd5('password3');pwdclear = 1;ajaxpost('loginform', 'returnmessage', 'returnmessage', 'onerror');return false;" action="logging.php?action=login&amp;loginsubmit=yes">
    <input type="hidden" name="formhash" value="397ef5b5" /><input type="hidden" name="referer" value="" />
    <div class="loginform nolabelform">
    <div class="float_typeid selectinput" id="account">
    <select name="loginfield" style="float:left;width:50px;" id="loginfield">
    <option value="username">用户名</option>
    <option value="uid">UID</option>
    <option value="email">Email</option>
    </select>
    <input type="text" name="username" autocomplete="off" size="36" class="txt" tabindex="1" value="" />
    </div>
    <p class="selectinput loginpsw">
    <label for="password3">密 码 :</label>
    <input type="password" id="password3" name="password" onfocus="clearpwd()" onkeypress="detectCapsLock(event, this)" size="36" class="txt" tabindex="1" /></p><div id="seccodelayer"></div><div class="float_typeid selecttype">
    <select id="questionid" name="questionid" change="if($('questionid').value > 0) {$('answer').style.display='';} else {$('answer').style.display='none';}">
    <option value="0">安全提问</option>
    <option value="1">母亲的名字</option>
    <option value="2">爷爷的名字</option>
    <option value="3">父亲出生的城市</option>
    <option value="4">您其中一位老师的名字</option>
    <option value="5">您个人计算机的型号</option><option value="6">您最喜欢的餐馆名称</option>
    <option value="7">驾驶执照的最后四位数字</option>
    </select>
    </div>
    <p><input type="text" name="answer" id="answer" style="display:none" autocomplete="off" size="36" class="txt" tabindex="1" /></p>
    </div>
    <div class="logininfo multinfo">
    <h4>没有帐号?<a href="register.php" onclick="hideWindow('login');showWindow('register', this.href);return false;" title="注册帐号">注册</a></h4>
    <p><a href="javascript:;" onclick="display('layer_login');display('layer_lostpw');" title="找回密码">找回密码</a></p>
    <p><a href="javascript:;" onclick="ajaxget('member.php?action=clearcookies&formhash=397ef5b5', 'returnmessage', 'returnmessage');return false;" title="清除痕迹">清除痕迹</a></p>
    </div><p class="fsubmit s_clear">
    <a href="javascript:;" id="custominfo_login" class="right"><img src="images/default/info.gif" alt="帮助" /></a><button class="submit" type="submit" name="loginsubmit" value="true" tabindex="1">登录</button>
    <input type="checkbox" class="checkbox" name="cookietime" id="cookietime" tabindex="1" value="2592000" checked="checked" /> <label for="cookietime">记住我的登录状态</label>
    </p>
    </form>
    </div>
    </div>
    <div id="layer_lostpw" style="display: none;">
    <h3 class="float_ctrl">
    <em id="returnmessage3">找回密码</em>
    <span></span>
    </h3>
    <div class="postbox"><form method="post" id="lostpwform" class="s_clear" onsubmit="ajaxpost('lostpwform', 'returnmessage3', 'returnmessage3', 'onerror');return false;" action="member.php?action=lostpasswd&amp;lostpwsubmit=yes&amp;infloat=yes">
    <input type="hidden" name="formhash" value="397ef5b5" />
    <input type="hidden" name="handlekey" value="lostpwform" />
    <div class="loginform">
    <label><em>用户名:</em><input type="text" name="username" size="25" value=""  tabindex="1" class="txt" /></label>
    <label><em>Email:</em><input type="text" name="email" size="25" value=""  tabindex="1" class="txt" /></label>
    </div>
    <div class="logininfo multinfo">
    <h4>没有帐号?<a href="register.php" onclick="hideWindow('login');showWindow('register', this.href);return false;" title="注册帐号">注册</a></h4>
    <p><a href="javascript:;" onclick="display('layer_login');display('layer_lostpw');">返回登录</a></p>
    </div>
    <p class="fsubmit s_clear"><em>&nbsp;</em>
    <button class="submit" type="submit" name="lostpwsubmit" value="true" tabindex="100">提交</button>
    </p>
    </form>
    </div>
    </div>
    </div>
    <div id="layer_message" class="fcontent alert_win" style="display: none;">
    <h3 class="float_ctrl">
    <em>用户登录</em>
    <span></span>
    </h3>
    <hr class="shadowline" />
    <div class="postbox"><div class="alert_right">
    <div id="messageleft"></div><p class="alert_btnleft" id="messageright"></p>
    </div>
    </div><script src="forumdata/cache/md5.js?Py1" type="text/javascript" reload="1"></script>
    <script type="text/javascript" reload="1">
    var pwdclear = 0;
    function initinput_login() {
    document.body.focus();
    $('loginform').username.focus();
    simulateSelect('loginfield');
    simulateSelect('questionid');
    }
    if(BROWSER.ie && BROWSER.ie < 7) {
    setTimeout('initinput_login()', 500);
    } else {
    initinput_login();
    }
    showPrompt('custominfo_login', 'click', '天健论坛禁止以任何名义发布广告的行为。请您在发帖之前,仔细查看天健论坛管理规则。对于违反规则的用户,我们将禁言处理。', 15000);
    var pwmd5log = new Array();
    function pwmd5() {
    numargs = pwmd5.arguments.length;
    for(var i = 0; i < numargs; i++) {
    if(!pwmd5log[pwmd5.arguments[i]] || $(pwmd5.arguments[i]).value.length != 32) {
    pwmd5log[pwmd5.arguments[i]] = $(pwmd5.arguments[i]).value = hex_md5($(pwmd5.arguments[i]).value);
    }
    }
    }function clearpwd() {
    if(pwdclear) {
    $('password3').value = '';
    }
    pwdclear = 0;
    }function messagehandle_lostpwform(key) {
    if(key == 141) {
    $('messageleft').innerHTML = '<p>取回密码的方法发送到您的信箱中,请在 3 天之内到论坛修改您的密码。</p>';
    $('messageright').innerHTML = '<a href="javascript:;" onclick="hideMenu(\'fwin_login\', \'win\')">关闭</a>';
    }
    }</script>
    </div></div>
    </div></div>
    </html>
      

  7.   

    楼上是页面源文件,浏览器得到的,想知道那个pwmd5到底起了什么作用能防止程序模拟登录了
      

  8.   

    pwmd5只是做加密,就那几行代码,肯定不会去防止程序模拟登录的,应该是其他地方。如果相关JS不是内联,你也看不到,根据src去IE临时文件夹找找。