Beberapa waktu lalu, saya mendapatkan email dari seseorang yang menginformasikan tentang kemungkinan celah keamanan dalam aplikasi ini (aplikasi kelulusan). Meskipun aplikasi ini saya bagikan secara cuma-cuma (free, gratis, gretongan) dan saya tidak bertanggung jawab terhadap masalah yang muncul pada pemakaian dan pengembangannya, tetap saja saya perlu menyampaikan "ancaman" ini agar saya dan juga anda (pemakai aplikasi ini) bisa tidur nyenyak.
Pastikan anda mengatur hak akses file dan folder (direktori) aplikasi di server secara benar. Read/Write penuh tidak direkomendasikan. Anda juga perlu upgrade ke PHP 7 dan memodifikasi skrip mengikuti panduan keamanan dari PHP.
Berikut ini skrinsut ancamannya:
![]()
Ini merupakan aplikasi berbasis web (PHP, MySQL/MariaDB) yang dapat dimanfaatkan untuk pengumuman kelulusan sekolah (SMK). Dengan aplikasi ini, siswa tidak perlu lagi datang ke sekolah untuk mengetahui hasil kelulusannya, cukup dengan akses internet (via komputer atau gadget). Dengan siswa mengakses web resmi sekolah, tentu akan meningkatkan visit-rate.
Ada beberapa orang yang berhasil melakukan instalasi secara lokal tapi gagal instalasi pada server hosting. Kegagalannya di-identifikasi tidak bisa login. FYI, aplikasi ini sebenarnya dalam bentuk PHP NATIVE dan sifatnya (amat) sangat sederhana. Fitur login yang digunakan dalam aplikasi ini menggunakan fungsi redirect dengan perintah header()
dalam PHP (baca Fungsi Header ini). Fitur login tidak berfungsi disebabkan halaman login tidak dapat melakukan redirect.
- Kemungkinan pertama, fitur redirect dengan perintah
header()
tidak di-ijinkan oleh server hosting. (kemungkinan ini sangat mustahil saat ini, kecuali menggunakan layanan gratisan) - Kemungkinan kedua, karena Byte Order Mark (BOM) pada file
login.php
. Untuk mengetahuinya, aktifkan error reporting lengkap. Petunjuknya bisa baca di sini.
Bisa dengan menggunakan redirect a la JavaScript yang sudah dicatat dalam file login.php
baris 78-88. Yang perlu diperhatikan adalah baris 84-85 yang semula
header('Location: ./');
//echo '<script>window.location("./");</script>';
ubah menjadi
//header('Location: ./');
echo '<script>window.location("./");</script>';
mudah kan?
Masih juga bermasalah? Sebaiknya anda hire orang IT beneran yang bisa koding untuk memodifikasi aplikasi ini, i mean it.
- Aplikasi ini ditulis dalam skrip PHP 5.x (ke atas) yang mendukung penggunaan sintaks MySQL Improved.
- Database MySQL/MariaDB.
- Untuk tampilan interface, kami serahkan pada Twitter Bootstrap (versi 3.x).
- jQuery dan sebagainya yang bisa dilihat dalam langsung pada file-file yang ada.
- Unduh telebih dahulu file Kelulusan
- Ekstrak dengan menggunakan tools favorit anda: 7zip, WinRAR, WinZip, atau yang lain.
- Login ke cPanel web sekolah anda,
- buat direktori/folder (misalnya: lulus) dalam direktori document root (www, public_html, atau htdocs) pada server anda.
- buat database untuk menampung data kelulusan. Buat juga username dan password khusus untuk database kelulusan, jika perlu.
Nama database pada prinsipnya bebas, walaupun pada aplikasi ini diberi nama un2016 yang meng-indikasikan tahun pembuatan. Anda dapat memberi nama apa saja.
- Unggah file-file yang telah di-ekstrak ke direktori yang telah dibuat pada langkah-3.
- Edit file database.php sesuai dengan konfigurasi pada server anda. Jangan lupa untuk disimpan :)
define('DB_HOST','localhost'); //alamat server database, umumnya 'localhost'
define('DB_USER','root'); //ganti dengan nama user database
define('DB_PASS',''); //isi dengan password user database
define('DB_NAME','un2016'); //ganti dengan nama database yang telah dibuat
- Buka laman phpMyAdmin dari cPanel dan impor file un2016.sql ke dalam database yang telah dibuat pada langkah-3.
- Jika sudah, anda dapat mengakses halaman kelulusan (misalnya: http://websekolah.sch.id/lulus/) dan halaman admin (misalnya: http://websekolah.sch.id/lulus/admin/)
- username: admin
- password: admin
- Pada halaman admin, anda dapat melakukan impor file kelulusan dalam format CSV (seperti pada file: un_siswa.csv). File CSV ini bisa anda buat dengan menggunakan aplikasi spreadsheet seperti Ms Excel. Untuk mudahnya, anda dapat mengedit data dalam file un_siswa.csv yang disertakan.
Aplikasi ini dibuat secara sederhana sebagai proof of concept pemrograman web sederhana untuk membuat pengumuman kelulusan sekolah. Saya tidak dapat menjanjikan pengembangan, karena aplikasi ini dibuat pada saat-saat longgar saya. Jika anda atau orang disekitar anda, memiliki kemampuan dalam pemrograman web (PHP) silahkan fork/download dan kembangkan aplikasi ini. Aplikasi ini dilisensi sebagai CC BY 4.0.