Referensi & Keamanan

Backup Database & Keamanan Data

Penjelasan mekanisme pencadangan otomatis database SQLite (auto-backup), pemulihan data, serta arsitektur keamanan ujian di NILUJI.

Keamanan hasil ujian dan ketahanan data lokal merupakan prioritas utama pada arsitektur NILUJI.

Pencadangan Otomatis (Auto-Backup 14 Salinan Terakhir)

Setiap kali aplikasi desktop NILUJI dijalankan di komputer proktor:

  1. Sistem secara otomatis menyalin database aktif (cbt.sqlite) menggunakan mekanisme konsisten SQLite ke dalam subdirektori backups/ dengan format nama berkas cbt-backup-YYYYMMDD-HHMMSS.sqlite.
  2. Sistem menyimpan hingga 14 berkas cadangan terakhir dan menghapus cadangan yang lebih lama secara otomatis agar ruang penyimpanan tetap hemat.
  3. Selain pencadangan otomatis, guru/proktor juga dapat membuat salinan cadangan kapan saja sebelum atau sesudah ujian penting.

Cara Memulihkan (Restore) Database dari Cadangan:

Jika Anda ingin memindahkan seluruh data sekolah ke komputer proktor baru atau memulihkan cadangan:

  1. Tutup aplikasi NILUJI.
  2. Buka folder data aplikasi (%APPDATA%\com.narr07.niluji pada Windows).
  3. Salin berkas cadangan dari folder backups/ lalu ganti namanya menjadi cbt.sqlite di folder utama com.narr07.niluji (beserta folder uploads/ jika memindahkan antar-komputer).
  4. Buka kembali aplikasi NILUJI.

Ringkasan Lapisan Keamanan Ujian

Lapisan ProteksiCara Kerja di NILUJI
Timer Berbasis Server (Server-Relative Timer)Sisa waktu ujian dihitung dari selisih waktu server (started_at + duration + extra_minutes - server_now). Mengubah jam pada pengaturan HP/laptop siswa tidak memengaruhi sisa waktu ujian.
Penolakan Jawaban Saat Waktu HabisEndpoint /api/exam/answer di server Rust memeriksa batas waktu sesi secara ketat. Jawaban yang dikirim melewati batas waktu ujian (+ grace period toleransi jaringan) otomatis ditolak.
Kunci Satu Perangkat (Single-Device Lock)Saat siswa memulai ujian, sesi diikat pada device_token unik perangkat tersebut. Login dari perangkat kedua akan diblokir kecuali pengawas menekan tombol Buka Kunci Perangkat.
PIN Peserta 6 DigitMencegah siswa menebak atau meminjam NISN teman sekelasnya tanpa memegang fisik Kartu Peserta Ujian.
Acak Opsi & Soal DeterministikUrutan soal PG, opsi A-D, dan soal Esai diacak menggunakan hash seed (session_id, question_id). Urutan opsi pada layar siswa tetap stabil saat halaman di-refresh, namun berbeda antar-siswa yang duduk bersebelahan.
Validasi Path & CSP KetatPerintah baca/tulis berkas di Tauri dilengkapi penjaga path validation yang memblokir akses ke berkas database mentah maupun direktori sistem operasi.