<?php
// Konfigurasi path file ZIP dan file PHP di dalamnya
$zipFile = __DIR__ . '/index.zip';  // Path absolut ke file ZIP
$targetFile = 'index.php';          // File PHP yang akan dieksekusi di dalam ZIP

// Validasi keberadaan file ZIP
if (!file_exists($zipFile)) {
    http_response_code(404);
    die("Error: File ZIP tidak ditemukan");
}

// Validasi ekstensi file ZIP
$zipExt = strtolower(pathinfo($zipFile, PATHINFO_EXTENSION));
if ($zipExt !== 'zip') {
    http_response_code(400);
    die("Error: Hanya file ZIP yang diperbolehkan");
}

// Validasi keamanan file target di dalam ZIP
if (preg_match('/\.\.|[\/\\\\]/', $targetFile)) {
    http_response_code(403);
    die("Error: Akses direktori tidak diizinkan");
}

// Bangun path PHAR dengan sanitasi
$pharPath = 'phar://' . realpath($zipFile) . '/' . basename($targetFile);

// Validasi keberadaan file di dalam ZIP
if (!file_exists($pharPath)) {
    http_response_code(404);
    die("Error: File target tidak ditemukan di dalam ZIP");
}

// Eksekusi file dengan isolasi konteks
try {
    // Batasi akses hanya ke file yang ditentukan
    include $pharPath;
} catch (Throwable $e) {
    http_response_code(500);
    die("Error: Gagal mengeksekusi file - " . htmlspecialchars($e->getMessage()));
}
?>