技术文摘

分享帝国cms等保要求口令复杂度和有效期的修改

作者:雨祺   发表于:
浏览:51次    字数:1190  原创
级别: 站长   总稿: 69 篇,  月稿: 0
分享帝国CMS等保要求口令复杂度和有效期的修改,等保其中一个要求是针对口令复杂度、密码有效期设置。
下面小编进入正题讲解改造方法:
1、增加口令复杂度
修改eadminuserEditPassword.php
  1. // 新增密码复杂性检查 
  2. if(strlen($password) < 8) 
  3.     printerror("PasswordTooShort","history.go(-1)"); 
  4.  
  5. // 检查密码是否包含至少一个字母 
  6. if(!preg_match('/[a-zA-Z]/', $password)) 
  7.     printerror("PasswordNoLetter","history.go(-1)"); 
  8.  
  9. // 检查密码是否包含至少一个数字 
  10. if(!preg_match('/d/', $password)) 
  11.     printerror("PasswordNoDigit","history.go(-1)"); 
  12.  
  13. // 检查密码是否包含至少一个特殊字符 
  14. if(!preg_match('/[W_]/', $password)) 
  15.     printerror("PasswordNoSpecialChar","history.go(-1)"); 
打开edatalanguagegbpubmessage.php增加以下内容
  1. 'PasswordTooShort'=>'密码不能少于8位'
  2. 'PasswordNoLetter'=>'至少一个字母'
  3. 'PasswordNoDigit'=>'至少一个数字'
  4. 'PasswordNoSpecialChar'=>'至少一个特殊字符'
  5. 'Password_old'=>'您的密码已过期,请立即修改密码。'
2、修改密码有效期
修改eclassfunctions.php的第4940行
  1. $adminr=$empire->fetch1("select last_password_update_time,userid,groupid,classid,userprikey,uprnd from {$dbtbpre}enewsuser where userid='$userid' and username='".$username."' and rnd='".$rnd."' and checked=0 limit 1"); 
修改eclassfunctions.php的第4960行
  1. //新增密码是否过期,在数据库中为管理员表添加了一个字段,用来记录密码的最后更新时间 
  2.     $last_password_update_time = $adminr['last_password_update_time']; 
  3.     $current_time = time(); 
  4.     $valid_period = 30 * 24 * 60 * 60; // 30天的有效期,单位是秒 
  5.     if ($current_time - $last_password_update_time > $valid_period) { 
  6.         printerror("Password_old","index.php"); 
  7.     } 
  8. //新增密码是否过期,在数据库中为管理员表添加了一个字段,用来记录密码的最后更新时间 
修改eadminuserEditPassword.php

$a=",password='$password',salt='$salt',salt2='$salt2';
替换为
  1. $a=",password='$password',salt='$salt',salt2='$salt2',last_password_update_time='$current_time'"
最后修改数据库,在phome_enewsuser表里面加一个last_password_update_time字段
 

【审核人:站长】

收藏   加好友   生成海报   分享
点赞(0)
打赏
Tags: CMS 帝国CMS 帝国 复杂度

发布者资料

热门文章

技术文摘

查看更多技术文摘
首页
栏目
搜索
会员
投稿