Membuat generator SEB config menggunakan PHP

Pendahuluan

Safe Exam Browser(SEB) merupakan browser yang dikhususkan untuk penggunaan Ujian Berbasis Komputer yang menyediakan banyak fitur keamanan, seperti: kunci layar agar peserta tidak bisa membuka aplikasi lain pada saat berlangsungnya ujian, otorisasi membuka dan menutup browser, dll.

Aplikasi SEB menggunakan file berekstensi .seb untuk menyimpan konfigurasi berisi parameter-parameter ujian yang kemudian didistribusikan oleh pengawas ke peserta ujian.

Pada pemrograman PHP ternyata belum banyak librari yang menyediakan generator .seb ini. oleh karena itu, saya coba membuatnya pada repository ini https://github.com/kalider/php-seb-generator terinspirasi dari https://github.com/ndum/laravel-seb yang hanya menyediakan generator seb khusus untuk dipergunakan pada framework Laravel.

Membuat file .seb

  1. Buat project php yang support composer, kemudian install librari php-seb-generator dengan menggunakan composer

    composer require kalider/php-seb-generator
  2. Salin file konfig json example yang ada di folder vendor/kalider/php-seb-generator/examples/example-seb-config.json ke base path project php yang sudah dibuat. Atau dengan mengunduh dari url https://raw.githubusercontent.com/kalider/php-seb-generator/main/examples/example-seb-config.json.

  3. Generate seb config

    • Untuk stream langsung melalui URL silahkan implementasikan seperti contoh berikut:
    use Kalider\PhpSebGenerator\SebConfigGenerator;
    
    $config = file_get_contents('example-seb-config.json');
    $startPassword = 'test';
    $quitPassword = 'test';
    $adminPassword = 'test';
    
    $sebConfig = json_decode($config, true);
    
    $encryptedSebConfig = SebConfigGenerator::generate($sebConfig, $startPassword, $quitPassword, $adminPassword);
    
    header("Content-Type: application/octet-stream");
    header("Content-disposition: attachment; filename=config.seb");
    echo $encryptedSebConfig;
    • Untuk menggenerate ke file gunakan contoh berikut:
    use Kalider\PhpSebGenerator\SebConfigGenerator;
    
    $config = file_get_contents('example-seb-config.json');
    $startPassword = 'test';
    $quitPassword = 'test';
    $adminPassword = 'test';
    
    $sebConfig = json_decode($config, true);
    $path = 'output/test.seb';
    $created = SebConfigGenerator::generateToFile($sebConfig, $path, $startPassword, $quitPassword, $adminPassword);

Penutup

  • Pada metode stream silahkan akses url config seb diimplementasikan menggunakan protokol seb, contoh seb://localhost/seb-config

  • Pada metode generate ke file untuk masuk ke Safe Exam Browser silahkan klik 2 kali pada file yang berekstensi .seb

  • Catatan: untuk kedua metode tersebut bisa dieksekusi jika Safe Exam Browser sudah ter-install.