Penerapan Keamanan Sistem Informasi pada Aplikasi Web Berbasis PHP-MySQL melalui Konfigurasi Web Server, Database MySQL, Virtual Drive Storage, Hashing MD5, dan Proteksi File
Nama/NIM : Nazla Sofiah (231011700662)
Mata Kuliah : Keamanan Sistem Informasi
PENDAHULUAN
Keamanan sistem informasi merupakan salah satu aspek penting dalam pengelolaan aplikasi berbasis web, terutama pada aplikasi yang menyimpan data penting. Penerapan mekanisme keamanan tidak hanya dilakukan pada proses autentikasi pengguna, tetapi juga mencakup konfigurasi web server, pengelolaan basis data, perlindungan file aplikasi, serta pengamanan media penyimpanan. Dengan menerapkan langkah-langkah tersebut, risiko akses tidak sah, perubahan data, maupun kerusakan sistem dapat diminimalkan.
Pada praktikum mata kuliah Keamanan Sistem Informasi, dilakukan penerapan keamanan pada aplikasi web Jasa berbasis PHP dan MySQL. File aplikasi yang digunakan merupakan aplikasi simulasi yang telah disediakan oleh dosen dengan nama Jasa.
Pelaksanaan praktikum menggunakan dua lingkungan kerja. Implementasi Apache Web Server, konfigurasi database MySQL, penerapan hashing password menggunakan algoritma MD5, modifikasi halaman beranda, serta proteksi file dilakukan pada laptop host menggunakan XAMPP. Sementara itu, konfigurasi Virtual Drive Storage dilakukan pada sistem operasi Windows Server 2003 yang dijalankan melalui VirtualBox. Seluruh tahapan dilakukan untuk memastikan aplikasi dapat berjalan dengan baik sekaligus menerapkan mekanisme keamanan dasar pada lingkungan server.
TUJUAN PRAKTIKUM
Pada praktikum ini, tujuan yang ingin dicapai adalah sebagai berikut:
- Mengimplementasikan Apache Web Server untuk menjalankan aplikasi berbasis PHP.
- Melakukan konfigurasi dan migrasi database MySQL.
- Menerapkan keamanan login menggunakan algoritma hashing MD5.
- Melakukan modifikasi halaman beranda aplikasi.
- Menerapkan proteksi file menggunakan atribut Read-only.
- Membuat Virtual Drive Storage menggunakan Windows Server 2003.
ALAT DAN BAHAN
Pada pelaksanaan praktikum ini digunakan beberapa perangkat keras (hardware) dan perangkat lunak (software) yang berfungsi untuk mendukung proses implementasi keamanan sistem informasi pada aplikasi web berbasis PHP dan MySQL. Adapun alat dan bahan yang digunakan adalah sebagai berikut.
1. Laptop/Komputer: Laptop digunakan sebagai perangkat utama untuk menjalankan aplikasi web, melakukan konfigurasi Apache Web Server, mengelola database MySQL, melakukan modifikasi file aplikasi, serta menjalankan VirtualBox.
2. Windows Server 2003: Windows Server 2003 digunakan sebagai sistem operasi server virtual untuk melakukan konfigurasi Virtual Drive Storage, meliputi pembuatan Virtual Hard Disk (VHD), inisialisasi disk, pembuatan partisi, format NTFS, dan pembuatan direktori penyimpanan.
3. VirtualBox: VirtualBox berfungsi sebagai aplikasi virtualisasi yang digunakan untuk menjalankan sistem operasi Windows Server 2003 tanpa perlu melakukan instalasi langsung pada komputer utama.
4. XAMPP: XAMPP digunakan sebagai web server lokal yang menyediakan layanan Apache, PHP, dan MySQL sehingga aplikasi web dapat dijalankan serta diakses melalui browser.
5. Browser: Browser digunakan untuk mengakses aplikasi web melalui alamat localhost sekaligus melakukan pengujian terhadap fungsi aplikasi setelah proses konfigurasi selesai dilakukan.
6. phpMyAdmin: phpMyAdmin digunakan sebagai aplikasi berbasis web untuk membuat database, mengimpor file SQL, mengelola tabel, serta menjalankan query SQL yang diperlukan selama proses praktikum.
7. Aplikasi Web Jasa Cuci Berbasis PHP-MySQL: Aplikasi web Jasa Cuci merupakan aplikasi simulasi yang disediakan oleh dosen sebagai objek praktikum. Aplikasi ini digunakan untuk melakukan implementasi web server, konfigurasi database, penerapan keamanan login, serta modifikasi halaman beranda.
8. File Database: File database (jasa.sql) digunakan sebagai sumber data yang diimpor ke dalam database MySQL sehingga struktur tabel dan data awal aplikasi dapat digunakan sebagaimana mestinya.
9. Command Prompt: Command Prompt digunakan untuk menjalankan perintah sistem, khususnya dalam memberikan atribut Read-only pada file index.php menggunakan perintah attrib sebagai salah satu bentuk proteksi file terhadap perubahan yang tidak diinginkan.
1. Implementasi Apache Web Server
1.1 Menjalankan Apache Web Server
Tahap pertama pada praktikum ini adalah melakukan implementasi Apache Web Server menggunakan aplikasi XAMPP yang telah terinstal pada laptop host. Apache berfungsi sebagai web server yang bertugas memproses permintaan (request) dari browser dan menjalankan aplikasi berbasis PHP, sedangkan layanan MySQL digunakan sebagai media penyimpanan data aplikasi.
Sebelum aplikasi dijalankan, layanan Apache dan MySQL diaktifkan melalui XAMPP Control Panel hingga keduanya berstatus Running. Status tersebut menunjukkan bahwa web server dan database server telah aktif sehingga siap digunakan untuk menjalankan aplikasi web.
| Gambar 1. Tampilan XAMPP Control Panel yang menunjukkan layanan Apache dan MySQL telah berhasil dijalankan dengan status Running. |
1.2 Menyalin File Aplikasi ke Direktori Web Server
Setelah layanan web server berhasil dijalankan, langkah berikutnya adalah menyalin folder aplikasi Jasa yang telah diberikan oleh dosen ke dalam direktori htdocs pada XAMPP. Direktori tersebut merupakan lokasi penyimpanan file aplikasi yang akan diakses oleh Apache Web Server.
Folder aplikasi disimpan pada lokasi berikut:
C:\xampp\htdocs\jasa
| Gambar 2. Folder aplikasi Jasa berhasil ditempatkan pada direktori htdocs sebagai lokasi penyimpanan aplikasi web. |
Dengan menempatkan aplikasi pada direktori htdocs, seluruh file PHP, HTML, CSS, JavaScript, dan aset lainnya dapat diproses oleh Apache Web Server ketika aplikasi diakses melalui browser.
1.3 Pengujian Aplikasi Melalui Browser
Setelah proses penyalinan aplikasi selesai dilakukan, langkah selanjutnya adalah melakukan pengujian dengan membuka browser dan mengakses alamat aplikasi melalui web server lokal.
Alamat yang digunakan yaitu:
http://localhost/jasa
| Gambar 3. Tampilan halaman login aplikasi Jasa yang berhasil diakses melalui browser menggunakan Apache Web Server. |
Apabila konfigurasi Apache Web Server telah dilakukan dengan benar, maka browser akan menampilkan halaman login aplikasi Jasa. Hal ini menunjukkan bahwa web server berhasil memproses file aplikasi dan aplikasi siap digunakan untuk tahap konfigurasi berikutnya.
1.4 Hasil Implementasi
Berdasarkan hasil pengujian, layanan Apache dan MySQL berhasil dijalankan menggunakan XAMPP, folder aplikasi berhasil dikenali oleh web server, serta halaman login aplikasi dapat diakses melalui browser tanpa mengalami kendala. Dengan demikian, proses implementasi Apache Web Server telah berhasil dilakukan dan aplikasi siap untuk memasuki tahap konfigurasi database MySQL.
2. Analisis Migrasi dan Import Database MySQL
2.1 Pembuatan Database
Tahap pertama pada konfigurasi basis data adalah membuat sebuah database baru menggunakan phpMyAdmin. Database dibuat dengan nama nazla sesuai dengan ketentuan praktikum. Database ini berfungsi sebagai tempat penyimpanan seluruh data yang digunakan oleh aplikasi web Jasa.
File database yang digunakan berada pada direktori:
C:\xampp\httdocs\jasa\database\jasa.sql
| Gambar 4. Pembuatan database nazla pada phpMyAdmin. |
2.2 Import File Database
Setelah database berhasil dibuat, langkah berikutnya adalah mengimpor file database jasa.sql ke dalam database nazla.
File database tersebut berada pada direktori:
C:\xampp\htdocs\jasa\database\jasa.sql
Proses import dilakukan melalui menu Import pada phpMyAdmin dengan memilih file jasa.sql, kemudian menjalankan proses hingga seluruh struktur tabel dan data berhasil dimasukkan ke dalam database.
| Gambar 5. Proses import file jasa.sql ke dalam database nazla. |
2.3 Verifikasi Struktur Database
Setelah proses import selesai, dilakukan pengecekan terhadap isi database untuk memastikan bahwa seluruh tabel berhasil dibuat. Hasil pengecekan menunjukkan bahwa tabel-tabel seperti user, biaya, pelanggan, transaksi, dan tabel lainnya telah berhasil diimpor sehingga database siap digunakan oleh aplikasi.
| Gambar 6. Tampilan database nazla yang menunjukkan seluruh tabel berhasil dibuat setelah proses import. |
2.4 Konfigurasi Koneksi Database
Langkah selanjutnya adalah menyesuaikan file koneksi.php agar aplikasi dapat terhubung dengan database nazla yang telah dibuat.
Konfigurasi koneksi yang digunakan adalah sebagai berikut:
$koneksi = mysqli_connect("localhost", "root", "", "nazla");
Keterangan konfigurasi:
- localhost merupakan alamat server database MySQL.
- root merupakan username bawaan MySQL pada XAMPP.
- Password dikosongkan karena menggunakan konfigurasi default XAMPP.
- nazla merupakan nama database yang digunakan oleh aplikasi.
| Gambar 7. Tampilan file koneksi.php yang telah dikonfigurasi sesuai dengan database nazla. |
2.5 Hasil Implementasi
Berdasarkan hasil implementasi, proses pembuatan database, import file jasa.sql, verifikasi struktur tabel, serta konfigurasi koneksi database berhasil dilakukan dengan baik. Seluruh tabel dapat dikenali oleh aplikasi sehingga database siap digunakan pada tahap berikutnya, yaitu penerapan keamanan login menggunakan algoritma hashing MD5.
3. Penerapan Keamanan Login Menggunakan Hashing MD5
3.1 Perubahan Password Menggunakan Algoritma MD5
Setelah konfigurasi database selesai dilakukan, tahap berikutnya adalah menerapkan keamanan pada proses autentikasi pengguna dengan mengubah penyimpanan password menjadi bentuk hash menggunakan algoritma MD5 (Message Digest Algorithm 5). Tujuan penerapan hashing adalah agar password tidak lagi disimpan dalam bentuk teks biasa (plain text) di dalam database, sehingga dapat meningkatkan keamanan apabila database diakses oleh pihak yang tidak berwenang.
Perubahan password dilakukan melalui phpMyAdmin dengan menjalankan query SQL menggunakan fungsi MD5().
Query tersebut akan mengubah password pengguna dengan username udin menjadi hasil hash dari password 12345.
| Gambar 8. Tampilan query SQL yang digunakan untuk mengubah password pengguna menjadi bentuk hash menggunakan algoritma MD5. |
3.2 Verifikasi Hasil Hash Password
Setelah query dijalankan, dilakukan pengecekan pada tabel user untuk memastikan bahwa password telah berhasil diubah menjadi bentuk hash MD5. Hasil pengecekan menunjukkan bahwa nilai password tidak lagi berupa teks 12345, melainkan berubah menjadi nilai hash sepanjang 32 karakter.
Sebagai contoh, password 12345 akan menghasilkan nilai hash MD5 sebagai berikut:
827ccb0eea8a706c4c34a16891f84e7b
Perubahan tersebut menunjukkan bahwa proses hashing telah berhasil diterapkan sehingga password tidak disimpan secara langsung di dalam database.
| Gambar 9. Tampilan tabel user yang menunjukkan password telah berhasil diubah menjadi nilai hash MD5. |
3.3 Pengujian Login Aplikasi
Setelah proses hashing selesai dilakukan, tahap berikutnya adalah melakukan pengujian login menggunakan akun administrator untuk memastikan aplikasi masih dapat melakukan proses autentikasi dengan benar.
Pengujian dilakukan menggunakan data sebagai berikut:
- Username : udin
- Password : 12345
Hasil pengujian menunjukkan bahwa aplikasi berhasil melakukan autentikasi dan mengarahkan pengguna ke halaman Dashboard Administrator. Hal ini membuktikan bahwa aplikasi telah berhasil membaca password yang telah di-hash menggunakan algoritma MD5.
| Gambar 10. Tampilan dashboard administrator yang berhasil diakses setelah proses login menggunakan password yang telah diamankan dengan algoritma MD5. |
3.4 Hasil Implementasi
Berdasarkan hasil implementasi, penerapan keamanan login menggunakan algoritma hashing MD5 berhasil dilakukan. Password pengguna tidak lagi tersimpan dalam bentuk teks biasa, melainkan telah berubah menjadi nilai hash sehingga meningkatkan keamanan data autentikasi. Selain itu, proses login ke dalam aplikasi tetap berjalan dengan baik menggunakan password asli yang dimasukkan oleh pengguna.
4. Validasi Integritas dan Modifikasi Halaman Beranda Web
4.1 Modifikasi Halaman Login
Tahap awal pada proses modifikasi dilakukan terhadap file index.php yang berada pada direktori utama aplikasi (root directory) web server. Perubahan dilakukan dengan menambahkan identitas pengguna berupa nama Nazla Sofiah pada halaman login tepat di bawah judul Login Admin. Penambahan identitas ini bertujuan sebagai penanda bahwa file index.php telah berhasil dimodifikasi sesuai kebutuhan praktikum.
Setelah proses penyuntingan selesai dilakukan, aplikasi dijalankan kembali untuk memastikan perubahan dapat ditampilkan dengan baik pada browser.
| Gambar 11. Proses modifikasi file index.php dengan menambahkan nama pengguna pada halaman login. |
| Gambar 12. Tampilan halaman login setelah berhasil menampilkan nama pengguna hasil modifikasi pada file index.php. |
4.2 Modifikasi Halaman Beranda (Home)
Setelah berhasil melakukan proses login, tahap berikutnya adalah memodifikasi halaman beranda aplikasi yang terdapat pada file admin.php. Perubahan dilakukan dengan mengubah teks pada bagian Header dari"Selamat Datang di UAS Keamanan Sistem Informasi" menjadi nama saya "Nazla Sofiah" sesuai dengan instruksi praktikum.
Selain perubahan pada bagian header, halaman beranda juga menampilkan informasi pengguna yang sedang login melalui variabel $_SESSION['nama']. Variabel tersebut mengambil data dari kolom nama pada tabel user di database MySQL, sehingga nama pengguna yang ditampilkan merupakan data yang tersimpan di dalam database.
| Gambar 13. Proses modifikasi halaman beranda pada file admin.php. |
| Gambar 14. Tampilan halaman beranda setelah berhasil dimodifikasi dan menampilkan informasi pengguna yang sedang login. |
4.3 Validasi Hasil Modifikasi
Setelah seluruh proses modifikasi selesai dilakukan, aplikasi diakses kembali melalui browser untuk memastikan bahwa setiap perubahan telah berhasil diterapkan. Hasil pengujian menunjukkan bahwa halaman login berhasil menampilkan nama pengguna yang ditambahkan pada file index.php, sedangkan halaman beranda berhasil menampilkan header yang telah dimodifikasi beserta informasi pengguna yang sedang login berdasarkan data yang diambil dari database.
Dengan demikian, proses modifikasi halaman aplikasi berhasil dilakukan dan seluruh perubahan dapat ditampilkan dengan baik melalui web browser.
4.4 Proteksi File Menggunakan Command Prompt
Sebagai langkah pengamanan, file index.php kemudian diberikan atribut Read-only menggunakan Command Prompt. Pemberian atribut ini bertujuan untuk menjaga integritas file agar tidak mudah diubah oleh pihak yang tidak berwenang maupun akibat kesalahan pengguna.
Perintah yang digunakan adalah sebagai berikut:
attrib +R "C:\xampp\htdocs\jasa\index.php"
| Gambar 15. Proses pemberian atribut Read-only pada file index.php menggunakan Command Prompt. |
Setelah atribut Read-only diterapkan, dilakukan pengujian dengan mencoba melakukan perubahan kembali pada file index.php menggunakan Visual Studio Code. Hasil pengujian menunjukkan bahwa editor menampilkan pesan "Failed to save 'index.php': File is read-only", yang berarti file tidak dapat disimpan karena telah memiliki atribut Read-only.
Hal tersebut membuktikan bahwa proteksi file berhasil diterapkan sehingga file tidak dapat dimodifikasi secara langsung sebelum atribut Read-only dihapus atau pengguna memberikan izin untuk mengubah file tersebut. Penerapan atribut ini merupakan salah satu mekanisme keamanan dasar yang bertujuan menjaga integritas file aplikasi dari perubahan yang tidak disengaja maupun modifikasi oleh pihak yang tidak berwenang.
| Gambar 16. Hasil pengecekan atribut file yang menunjukkan status Read-only (R) telah berhasil diterapkan. |
4.5 Hasil Implementasi
Berdasarkan hasil implementasi, proses modifikasi berhasil dilakukan pada dua bagian aplikasi, yaitu halaman login melalui file index.php dan halaman beranda melalui file admin.php. Halaman login berhasil menampilkan identitas pengguna, sedangkan halaman beranda berhasil menampilkan header yang telah diperbarui serta informasi pengguna yang diambil dari database melalui session. Selain itu, file index.php berhasil diproteksi menggunakan atribut Read-only melalui Command Prompt sehingga memberikan perlindungan dasar terhadap perubahan yang tidak diinginkan.
5. Konfigurasi Virtual Drive Storage dan Keamanan Direktori
5.1 Penambahan dan Inisialisasi Virtual Drive
Tahap terakhir pada praktikum ini adalah melakukan konfigurasi media penyimpanan tambahan menggunakan Virtual Hard Disk (VHD) pada sistem operasi Windows Server 2003 yang dijalankan melalui VirtualBox. Virtual drive dibuat dengan kapasitas 15 GB sesuai dengan instruksi praktikum. Setelah Virtual Hard Disk berhasil ditambahkan pada VirtualBox, sistem operasi mendeteksi adanya media penyimpanan baru yang masih belum dapat digunakan. Oleh karena itu dilakukan proses Initialize Disk melalui Initialize and Convert Disk Wizard agar virtual drive dapat dikenali oleh sistem operasi dan siap untuk dikonfigurasi lebih lanjut.
| Gambar 17. Pembuatan Virtual Hard Disk (VDI) berkapasitas 15 GB pada Oracle VirtualBox |
Setelah proses inisialisasi selesai dilakukan, virtual drive berhasil ditampilkan pada Disk Management dengan status Online. Namun, ruang penyimpanan tersebut masih berstatus Unallocated, sehingga diperlukan proses pembuatan volume baru sebelum dapat digunakan sebagai media penyimpanan.
Selanjutnya, utilitas Disk Management dibuka melalui perintah diskmgmt.msc untuk melakukan konfigurasi media penyimpanan yang baru ditambahkan. Fitur ini digunakan untuk mengelola disk, membuat volume, serta melakukan format sistem file pada media penyimpanan.
Gambar 18. Membuka Disk Management melalui perintah diskmgmt.msc pada Windows Server 2003 |
Setelah Virtual Hard Disk terdeteksi oleh sistem, dilakukan proses inisialisasi menggunakan Initialize and Convert Disk Wizard. Proses ini bertujuan agar media penyimpanan baru dapat dikenali dan dikelola oleh sistem operasi sebelum digunakan untuk menyimpan data.
| Gambar 19. Tampilan awal Initialize and Convert Disk Wizard pada Windows Server 2003 |
Setelah proses inisialisasi selesai, virtual hard disk berhasil dikenali oleh sistem dan ditampilkan pada Disk Management dengan status Online. Namun, ruang penyimpanan tersebut masih berstatus Unallocated sehingga belum dapat digunakan dan perlu dilakukan pembuatan volume baru.
| Gambar 20. Virtual Hard Disk berkapasitas 15 GB berhasil dikenali pada Disk Management |
5.2 Pembuatan Volume dan Format NTFS
Langkah berikutnya adalah membuat volume baru menggunakan New Volume Wizard. Pada tahap ini ditentukan kapasitas volume yang akan digunakan serta huruf drive sebagai identitas media penyimpanan. Setelah volume berhasil dibuat, dilakukan proses format menggunakan sistem file NTFS (New Technology File System) agar media penyimpanan dapat digunakan untuk menyimpan data.
Pada proses format, dipilih sistem file NTFS dengan ukuran alokasi default dan diberikan Volume Label "Nazla Sofiah" sebagai identitas volume sesuai dengan ketentuan praktikum. Penggunaan sistem file NTFS dipilih karena memiliki fitur keamanan dan pengelolaan hak akses yang lebih baik dibandingkan sistem file FAT.
| Gambar 21. Konfigurasi format volume menggunakan sistem file NTFS pada New Volume Wizard. |
5.3 Pembuatan Folder Utama
Setelah virtual drive berhasil dibuat dan diformat menggunakan sistem file NTFS, dilakukan pembuatan folder utama bernama Nazla_Sofiah pada drive F:. Folder tersebut digunakan sebagai direktori penyimpanan data sekaligus sebagai identitas praktikan sesuai dengan instruksi praktikum yang diberikan.
Pembuatan folder ini juga bertujuan untuk memastikan bahwa virtual drive telah berfungsi dengan baik dan dapat digunakan sebagai media penyimpanan tambahan pada Windows Server 2003. Keberhasilan pembuatan folder menunjukkan bahwa seluruh proses konfigurasi media penyimpanan telah berjalan dengan baik.
| Gambar 22. Virtual Drive berhasil dikonfigurasi dan direktori "Nazla_Sofiah" berhasil dibu |
5.4 Hasil Implementasi
Berdasarkan hasil implementasi, proses konfigurasi Virtual Hard Disk (VHD) berkapasitas 15 GB pada Windows Server 2003 berhasil dilakukan dengan baik. Virtual drive berhasil diinisialisasi, dikenali oleh sistem operasi, dibuat volume baru, serta diformat menggunakan sistem file NTFS. Setelah proses konfigurasi selesai, virtual drive siap digunakan sebagai media penyimpanan tambahan yang mendukung pengelolaan data dengan sistem keamanan yang lebih baik dibandingkan sistem file FAT.
KESIMPULAN
Berdasarkan hasil praktikum yang telah dilakukan, penerapan keamanan sistem informasi pada aplikasi web berbasis PHP-MySQL berhasil diimplementasikan dengan baik. Implementasi diawali dengan konfigurasi Apache Web Server menggunakan XAMPP sehingga aplikasi web Jasa dapat dijalankan dan diakses melalui browser. Selanjutnya dilakukan pembuatan database, proses import file jasa.sql, serta konfigurasi koneksi database sehingga aplikasi dapat terhubung dengan MySQL dan beroperasi sebagaimana mestinya.
Pada aspek keamanan, dilakukan penerapan algoritma hashing MD5 untuk mengamankan password pengguna sehingga password tidak lagi disimpan dalam bentuk teks biasa (plain text) pada database. Hasil pengujian menunjukkan bahwa proses autentikasi tetap berjalan dengan baik dan pengguna dapat berhasil masuk ke halaman dashboard menggunakan password yang telah di-hash.
Selain itu, dilakukan modifikasi pada halaman login dan halaman beranda aplikasi sesuai dengan kebutuhan praktikum. Sebagai upaya menjaga integritas file, file index.php diberikan atribut Read-only menggunakan perintah attrib +R melalui Command Prompt sehingga file tidak dapat diubah secara langsung tanpa menghapus atribut tersebut.
Tahap terakhir adalah konfigurasi Virtual Drive Storage pada Windows Server 2003 melalui Oracle VirtualBox. Virtual Hard Disk berkapasitas 15 GB berhasil dibuat, diinisialisasi, dibuat volume baru, diformat menggunakan sistem file NTFS, serta dibuat direktori Nazla_Sofiah sebagai media penyimpanan data. Dengan demikian, seluruh tahapan praktikum berhasil diselesaikan sesuai instruksi, sekaligus memberikan pemahaman mengenai penerapan keamanan sistem informasi yang meliputi konfigurasi web server, pengelolaan basis data, pengamanan autentikasi, perlindungan file, dan pengelolaan media penyimpanan pada lingkungan server.