Banyak yang menyarankan tidak menggunakan XAMPP untuk server production. Padahal penggunaan XAMPP sebagai environment pada fase production sangat memudahkan pengembangan website. Namun XAMPP bukanlah pilihan yang tepat untuk fase ini.
Dalam web development life cycle, jika Anda mengembangkan sebuah web, mungkin sudah mengenal fase production, yakni momen di mana website yang sudah dibuat kemudian dipublikasikan ke publik sehingga semua orang dapat mengaksesnya.
Untuk mengelola semua data dan aset website, XAMPP adalah salah satu dari beberapa opsi web server/environment yang dapat digunakan. XAMPP memang bagus sebagai environment pada fase development.
Tetapi, ketika sudah masuk fase production, sebaiknya Anda tidak menggunakan XAMPP sebagai web servernya. Kenapa demikian? Berikut beberapa alasan kenapa Anda seharusnya tidak menggunakan aplikasi web server XAMPP?
Daftar Isi
Alasan Tidak Menggunakan XAMPP untuk Server Production
Berdasarkan rekomendasi jasa pembuatan website terbaik, untuk alasan keamanan sebaiknya Anda tidak menggunakan XAMPP sebagai production server.
Apalagi dengan maraknya kasus dokumen tertentu dalam website dapat diakses secara publik dengan teknik Google Dork menggunakan beberapa kueri khusus.
Berikut ini beberapa alasan mengapa sebaiknya Anda tidak menggunakan XAMPP sebagai server production untuk website Anda:
1.Tidak Ada Password untuk Administrator MySQL
Alasan pertama tidak menggunakan XAMPP untuk server production adalah karena tidak adanya password secara default untuk Administrator MySQL.
XAMPP menggunakan MySQL sebagai database-nya. Saat melakukan konfigurasi MySQL di awal, default username dan password MySQL adalah “root” dan tanpa password. Contohnya seperti di bawah ini ketika melakukan konfigurasi MySQL WordPress:
Anda juga dapat memeriksa melalui tab User accounts di MySQL. Di sana dapat Anda lihat bahwa User name ‘root‘ secara default tidak memiliki password.
Sehingga, hacker dapat dengan mudah mengakses seluruh database website Anda. Caranya adalah, mereka melakukan pencarian website dengan metode Google Dorking, kemudian mengakses phpMyAdmin dan memasukkan username root tanpa ada password.
Setelah Log in, mereka kemudian dapat memodifikasi isi database MySQL, karena user root memiliki permission untuk membaca, menulis, hingga mengeksekusi.
Siapapun yang dapat mengakses database website Anda dapat melihat dan meng-copy semua informasi pengguna dan perusahaan, bahkan yang bersifat rahasia.
Selain itu, sebagian besar sistem saat ini meletakkan datanya pada database. Jika database tersebut terhapus atau tidak bisa diakses, sistem web Anda down.
2. Server Mail Local tidak Aman
Alasan lain kenapa tidak menggunakan XAMPP untuk server production masih berkutat dengan masalah kerentanan hacking pada Mail Server bawaannya.
Jika Anda menggunakan Windows, mail server lokal yang digunakan XAMPP adalah Mercury yang sangat berguna untuk melakukan testing pengiriman dan penerimaan email melalui internet.
Anda dapat mengaksesnya melalui XAMPP Control Pannel di bagian Module Mercury. Untuk melihat kridensial user, buka Manage User > di sana sudah terdapat user Admin Mail System Administrator. Jika Anda buka, maka secara bawaan tidak ada Mail password di sana.
Testing dapat dilakukan menggunakan Thunderbird, yakni software mail client open-source gratis yang dikembangkan Mozilla. Di sana Anda bisa membuat akun dengan username Admin tanpa password seperti berikut:
Apabila akun user ini dibiarkan secara default, tentu mudah sekali untuk mengakses server email situs Anda. Sehingga hacker dapat mengakses informasi apapun yang ada pada email.
3. Directory Listing XAMPP yang Terekspos
Secara default, directory listing XAMPP dapat diakses oleh siapa pun dalam network. Inilah alasan mengapa sebaiknya Anda tidak menggunakan XAMPP untuk server production.
Directory Listing atau daftar direktori adalah kondisi di mana server Anda menampilkan folder beserta file website di halaman browser. Padahal folder dan file ini tidak boleh diketahui publik.
Dengan terbukanya akses pada list direktori, orang dapat melihat struktur dari situs atau aplikasi Anda. Sehingga mereka dapat menemukan direktori atau file penting dan bersifat rahasia.
Misalnya saja mereka dapat menemukan file-file yang berisi kredensial, seperti file config.php
, database.php
, atau credentials.txt
di mana informasi seperti username dan password berada.
Sehingga, dengan menggunakan XAMPP sebagai environment production, Anda perlu melakukan konfirgurasi manual sehingga directory listing tidak muncul di browser.
4. Halaman Error yang Menampilkan Informasi Rahasia
Dalam pengembangan sebuah aplikasi atau website, error adalah hal yang umum terjadi. Ketika XAMPP digunakan pada environment development, informasi error pada front-end memudahkan developer menemukan titik kesalahannya.
Oleh karena itu, konfigurasi bawaan XAMPP yang memungkinkan munculnya halaman error seperti di bawah ini mempercepat kerja developer dalam memperbaiki error.
Namun, ketika Anda menggunakan XAMPP untuk environment production, informasi error path seperti di atas dapat menjadi celah kerentanan website Anda.
Dengan mengetahui error path tersebut, hacker dapat memetakan arsitektur website dengan gampang. Implikasinya, mereka juga lebih mudah menemukan file berisi informasi sensitif.
Konfigurasi penampilan halaman error pada XAMPP ini diatur oleh fungsi display_errors
dan expose_php
yang secara bawaan memang On. Anda dapat memeriksanya pada file php.ini seperti berikut ini:
Oleh karenanya, jika tidak jeli dalam menutup celah-celah tersebut, menggunakan XAMPP sebagai server production akan sangat rentan untuk keamanan website Anda.
5. Halaman Dashboard XAMPP Mudah Diakses
Masalah lain yang akan Anda temui ketika menggunakan XAMPP sebagai environment production adalah fakta bahwa dashboard XAMPP yang secara default mudah diakses oleh publik.
Dashboard XAMPP memudahkan dalam mengakses informasi sensitif dan halaman penting hingga informasi itu dapat digunakan untuk mencari kelemahan pada website Anda.
Misalnya saja, jika seseorang dapat mengakses halaman dashboard XAMPP, maka ia juga akan bisa mengakses halaman PHP di mana detail informasi server Anda berada di sana seperti gambar berikut:
Melalui dashboard XAMPP ini juga halaman MySQL dapat diakses. Apalagi jika halaman login MySQL belum diproteksi, tentu mudah untuk diakses.
6. Spesifikasi Server Dapat Diakses Publik
Kerentanan XAMPP jika digunakan sebagai server production juga terletak pada informasi spesifikasi server yang dapat diakses secara publik. Contohnya seperti di bawah ini:
Untuk melihat informasi spesifikasi server, seseorang tinggal melakukan Inspect element > buka Network > lihat salah satu file > lihat pada bagian Server. Di sana informasi spesifikasi server yang digunakan mudah ditemukan.
Selain itu, pada halaman error pun informasi spesifikasi server juga muncul seperti gambar di bawah. Informasi tersebut dapat disalahgunakan untuk melakukan hacking.
Misalnya dengan mengetahui versi Apache yang digunakan, seseorang bisa mencari kelemahan dari server versi tersebut.
Kemudian mereka akan lebih mudah melakukan peretasan dengan mengkombinasikan kelemahan XAMPP lainnya.
7. Beberapa Fungsi Tidak Aman
XAMPP memiliki fungsi exec
, epassthru
, dan shell_exec
yang secara default aktif. Fungsi ini memungkinkan untuk melakukan eksekusi program atau script yang ditanam pada sebuah sistem.
Anda dapat memeriksanya pada file php.ini
di mana di bagian disable_functions
ketiga fungsi tersebut tidak dinonaktifkan, yang berarti ini adalah celah keamanan.
Anda juga dapat memeriksanya dengan membuat file .php
yang berisi script di bawah ini dan menyimpannya di htdocs
.
<?php echo "<pre>"; var_dump(function_exists('exec')); var_dump(function_exists('passthru')); var_dump(function_exists('shell_exec')); echo "</pre>";
Selanjutnya, Anda dapat membuka file php
tersebut melalui browser. Jika muncul bool(true)
artinya fungsi exec
, epassthru
, dan shell_exec
aktif.
Jika seorang hacker berhasil inject kode dalam script PHP Anda sementara tiga fungsi di atas aktif, maka mereka dapat melakukan eksekusi pada server. Meski demikian, celah ini dapat Anda atasi dengan menonaktifkan exec, pasthru, dan shell_exec.
Alternatif Web Server untuk Production selain XAMPP
Jika tidak menggunakan XAMPP untuk server production, jenis web server apa yang bisa Anda gunakan? Ada beberapa web server lainnya, contohnya seperti Nginx, Docker, WP Engine, dan cPanel.
Apabila sudah terlanjur menggunakan XAMPP sebagai web server, Anda dapat memindahkannya ke teknologi web server yang lebih aman. Anda dapat melakukannya sendiri ataupun bekerja sama dengan web developer seperti Tonjoo.
Memastikan keamanan website sangat penting. Oleh karena itu, memilih teknologi sebagai environment production tidak boleh dilakukan dengan sembarangan.
Baca artikel serupa oleh Moch. Nasikhun Amin di blog Tonjoo mengenai WordPress, WooCommerce, plugin, dan topik-topik pengembangan web lainnya.
Updated on November 1, 2024 by Moch. Nasikhun Amin