File Manager V1.5

[SYSTEM@ROOT]: /var/www/html/
INJECT_FILE:
NEW_ENTRY:

FILE_CONTENT: db.php

<?php
require __DIR__ . '/vendor/autoload.php';
use Firebase\JWT\JWT;
use Firebase\JWT\Key;

$host = 'gvitamb3.beget.tech';
$db   = 'gvitamb3_dcarbas';
$user = 'gvitamb3_dcarbas';
$pass = 'Man363906';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    3 => 2, 
    8 => 2, 
    20 => false, 
];

try {
    $pdo = new PDO($dsn, $user, $pass, $options);
} catch (PDOException $e) {
    throw new PDOException($e->getMessage(), (int)$e->getCode());
}

/**
 * Универсальная функция для получения токена из заголовков
 * Поддерживает различные способы получения заголовка Authorization
 * для совместимости с Android и веб-клиентами
 */
function getAuthToken() {
    $token = null;
    
    // Способ 1: Из HTTP_AUTHORIZATION (стандартный способ)
    if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
        $token = $_SERVER['HTTP_AUTHORIZATION'];
    }
    
    // Способ 2: Из REDIRECT_HTTP_AUTHORIZATION (если через mod_rewrite)
    if (!$token && isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
        $token = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
    }
    
    // Способ 3: Из getallheaders()
    if (!$token) {
        $headers = getallheaders();
        if ($headers) {
            if (isset($headers['Authorization'])) {
                $token = $headers['Authorization'];
            } elseif (isset($headers['authorization'])) {
                $token = $headers['authorization'];
            }
        }
    }
    
    // Способ 4: Из apache_request_headers() (если доступно)
    if (!$token && function_exists('apache_request_headers')) {
        $headers = apache_request_headers();
        if ($headers) {
            if (isset($headers['Authorization'])) {
                $token = $headers['Authorization'];
            } elseif (isset($headers['authorization'])) {
                $token = $headers['authorization'];
            }
        }
    }
    
    // Извлекаем токен из формата "Bearer <token>"
    if ($token && preg_match('/Bearer\s+(.+)$/i', $token, $matches)) {
        return trim($matches[1]);
    }
    
    return null;
}

function verifyToken($token) {
    $secret_key = 'Niy8dbpV4WT90k/eXPrzOuZRvK7Jr44iASpBNpwqPug=';
    
    try {
        $decoded = JWT::decode($token, new Key($secret_key, 'HS256'));
        return (array)$decoded;
    } catch (Exception $e) {
        error_log("Token verification failed: " . $e->getMessage());
        return false;
    }
}

function getPDO() {
    global $pdo;
    return $pdo;
}
?>
[ KEMBALI ]