dedeCMS网站后台文件login.php,过3年会被自动删除,一放进去就会被删,求大神指导!

查看 59|回复 6
作者:spldj145   
dedeCMS网站后台登录login.php,发现网站搭建了快3年,现在登录php文件login.php会被自动删除,找了半天代码也没发现问题,login.php一放进去3秒就会被删,求大神指导如何破?

就会, 大神

cyjahfy   

可以查查会不会是login.php文件被添加了恶意代码,所以被电脑安全软件给清除了
spldj145
OP
  

能帮忙看下是哪个代码吗?我设置成2024年就不会被杀,2025年就不行。
您的管理目录的名称中包含默认名称dede,建议在FTP里把它修改为其它名称,那样会更安全!';
}
else
{
    $redmsg = '';
}
//登录检测
$admindirs = explode('/',str_replace("\\",'/',dirname(__FILE__)));
$admindir = $admindirs[count($admindirs)-1];
if($dopost=='login')
{
    //只允许用户名和密码用0-9,a-z,A-Z,'@','_','.','-'这些字符
    $userid = preg_replace("/[^0-9a-zA-Z_@!\.-]/", '', $userid);
    $pwd = preg_replace("/[^0-9a-zA-Z_@!\.-]/", '', $pwd);
    $cfg_fail_limit = isset($cfg_fail_limit) ? $cfg_fail_limit : 5;
    $cfg_lock_time = isset($cfg_lock_time) ? $cfg_lock_time : 3600;
    // 连续登录失败用户锁定
    $fail_limit = $cfg_fail_limit;
    $lock_time = $cfg_lock_time;
    $arr_login = array();
    $filename = DEDEDATA.'/login.data.php';
    if (file_exists($filename)) {
        require_once(DEDEDATA . '/login.data.php');
        $arr_login = json_decode($str_login, true);
        if ($arr_login[$userid] != '') {
            $count = explode(',', $arr_login[$userid])[0];
            $timestamp = explode(',', $arr_login[$userid])[1];
            if ($count == $fail_limit && $timestamp + $lock_time > time()) {
                $date = date('Y-m-d H:i:s', $timestamp + $lock_time);
                ResetVdValue();
                ShowMsg("连续登录失败用户锁定!解锁时间:{$date}", 'login.php', 0, 5000);
                exit;
            }
        }
    }
    $validate = empty($validate) ? '' : strtolower(trim($validate));
    $svali = strtolower(GetCkVdValue());
    if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){
        ResetVdValue();
        ShowMsg('验证码不正确!','login.php',0,1000);
        exit;
    } else {
        $cuserLogin = new userLogin($admindir);
        if(!empty($userid) && !empty($pwd))
        {
            $res = $cuserLogin->checkUser($userid,$pwd);
            //success
            if($res==1)
            {
                // 连续登录失败用户锁定
                $count = 0;
                $timestamp = time();
                $arr_login[$userid] = "{$count},{$timestamp}";
                $content = "keepUser();
                if(!empty($gotopage))
                {
                    if (preg_match("#^(http|https):\/\/#i", $gotopage) && !preg_match("#^{$cfg_basehost}#", $gotopage)) {
                        ShowMsg('非本站资源无法访问', 'javascript:;');
                        exit();
                    }
                    ShowMsg('成功登录,正在转向管理管理主页!',dede_htmlspecialchars($gotopage));
                    exit();
                }
                else
                {
                    ShowMsg('成功登录,正在转向管理管理主页!',"index.php");
                    exit();
                }
            }
            //error
            else if($res==-1)
            {
                ResetVdValue();
                ShowMsg('用户名或者密码错误!','login.php',0,1000);
                exit;
            }
            else
            {
                // 连续登录失败用户锁定
                $count = 1;
                $timestamp = time();
                if ($arr_login[$userid] != '') {
                    $count = explode(',', $arr_login[$userid])[0] + 1;
                    if ($count > $fail_limit) {
                        $count = 1;
                    }
                }
                $arr_login[$userid] = "{$count},{$timestamp}";
                $content = "
cyjahfy 发表于 2025-10-14 16:02
可以查查会不会是login.php文件被添加了恶意代码,所以被电脑安全软件给清除了

我就不能放在网站的目录下,放在任何一个文件夹里,就自动删除,我设置成2024年,就不会被删,一设置成2025年,就会被删。很奇怪。
spldj145
OP
  


spldj145 发表于 2025-10-14 16:27
我就不能放在网站的目录下,放在任何一个文件夹里,就自动删除,我设置成2024年,就不会被删,一设置成20 ...

试试更改成其它文件名,如login1234.php会不会被删除。也会被删的话再复制一个其它现有的.php文件再改成其它文件名看看会不会也被删除,如果不被删除的话再试试把login.php的代码粘贴进去,如果也删除的话,可能要跟踪一下代码查找原因了。
cyjahfy   


cyjahfy 发表于 2025-10-14 16:31
试试更改成其它文件名,如login1234.php会不会被删除。也会被删的话再复制一个其它现有的.php文件再改成 ...

一样,会删。
spldj145
OP
  

看了下没有看到删除文件的代码,问了下ds,
建议检查以下文件:
1. /../include/common.inc.php
2. DEDEINC.'/userlogin.class.php
3. DEDEDATA.'/admin/config_update.php
这些文件中可能包含与系统时间校验相关的逻辑
wwsuifeng   


spldj145 发表于 2025-10-14 16:39
一样,会删。

都会被删的话,可能是代码上哪里有校验逻辑,也可能是服务器上有定时任务啥的,具体得排查。如果web服务可以关闭的话,可以关闭web服务,再上传试试。。。总之要先排查一下是代码原因,还是服务原因,或者其它原因。如果关闭服务后,上传没问题,可能是代码原因,如果你对PHP熟悉的话,可以自行找找核心代码里有没有相关逻辑,找不到的话,只能打包完整程序或者远程看看了。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部