Web Server, untuk berkomunikasi dengan clientnya (web browser) mempunyai protokol
sendiri yaitu HTTP (HyperText Transfer Protocol). Dengan protokol ini, komunikasi antar web
server dengan clientnya (browser) dapat saling dimengerti dan lebih mudah.
Seperti telah dijelaskan diatas, Standar format data pada World Wide Web adalah SGML.
Tapi sudah menjadi hal yang umum bahwa para pengguna internet lebih banyak menggunakan
format HTML (HyperText Markup Language) karena penggunaannya yang lebih sederhana dan
mudah dipelajari.
Kata HyperText mempunyai arti bahwa seorang pengguna internet dengan web browsernya
dapat membuka dan mambaca dokumen-dokumen yang ada dalam komputernya atau bahkan
komputer yang jauh tempatnya sekalipun. Hal ini memberikan cita rasa dari suatu proses yang
tridimensional, artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang
lain hanya dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu.
Proses yang dimulai dari permintaan webclient (browser), diterima web server, diproses,
dan dikembalikan hasil prosesnya oleh web server ke webclient lagi dilakukan secara transparan.
Setiap orang dapat dengan mudah mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis
besarnya web server hanya memproses semua masukan yang diperolehnya dari web clientnya.
Untuk membuat sebuah web server, maka kita akan menemukan berbagai macam
persoalan, dimulai dari pemilihan software web browser yang mana yang paling sesuai
kebutuhan, apa spesifikasi hardware yang dibutuhkan, bagaimana kondisi interkoneksi jaringan
internet yang ada, dan lain sebagainya. Belum lagi termasuk bagian pembuatan halaman-
halaman webnya, mau menggunakan format apa (HTML, SGML, PHP, PHP3, CGI, dan lain-
lain). Hal yang paling utama dalam proses pembuatan Web Server adalah memilih software
mana yang akan digunakan sebagai web server kita.Untuk itu, perlu adanya beberapa
pertimbangan sebagai berikut :
1. Komersial lawan Freeware (software gratis).
2. Kemudahan instalasi
3. Kemudahan mengonfigurasi
4. Kemudahan untuk menambah atau mengubah periferalnya.
5. Kemampuan software.
6. Besar ruang yang dibutuhkan untuk menyimpan file-file minimal yang
dibutuhkan agar software berfungsi dengan baik
7. Prospek software tersebut dimasa yang akan dating
8. Performasi dan konsumsi sumber daya yang digunakan software itu.
9. Fasilitas apa yang mampu didukung software itu.
10. Dukungan Teknis (mempunyai site-site atau mailis untuk bertanya bila terjadi
masalah).
11. Dukungan Platform (jenis sistem operasi apa saja yang dapat menjalankan
software tersebut)
12. Dukungan terhadap third party (Apakah software ini dapat ditambahkan software
tambahan sebagai pelengkap)
1. Cara Kerja Web Server
Cara kerja web server cukup sederhana, karena pada dasarnya tugas web server hanya ada dua,
yaitu:
• Menerima permintaan (request) dari client
• Mengirimkan apa yang diminta oleh client (respone)
Keterangan Gambar:
a) Client disini dapat berupa computer desktop dengan minimal memiliki browser
dan terhubung ke web server melalui jaringan (intranet atau internet)
b) Komputer yang berfungsi sebagai server, dimana didalamnya terdapat perangkat
lunak web server. Agar komputer ini dapat diakses oleh client maka komputer
harus terhubung ke jaringan (intranet atau internet). Dalam jaringan internet,
komputer ini bisa saja bernama www.google.com, www.bl.ac.id, atau memiliki
kode computer (disebut IP Address) seperti 202.10.20.10 dan 200.100.50.25.
c) Pertama‐tama, client (user) akan meminta suatu halaman ke (web) server untuk
ditampilkan di komputer client. Misalnya client mengetikkan suatu alamat (biasa
disebut URL) di browser http://www.google.com. Client menekan tombol Enter
atau klik tombol Go pada browser. Lalu apa yang terjadi? Melalui media jaringan
(bias internet, bisa intranet) dan melalui protokol http, akan dicarilah komputer
bernama ww.google.com. Jika ditemukan, maka seolah‐olah terjadi permintaan,
“hai google, ada client yang minta halaman utama nich, ada dimana
halamannya?”. Inilah yang disebut request.
d) Sekarang dari sisi server (web server). Mendapat permintaan halaman utama
google dari client, si server akan mencari‐cari di komputernya halaman sesuai
permintaan. Namanya juga mencari, kadang ketemu, kadang juga tidak ketemu.
Jika ditemukan, maka halaman yang diminta akan dikirimkan ke client (si
peminta), namun jika tidak ditemukan, maka server akan memberi pesan “404.
Page Not Found”, yang artinya halaman tidak ditemukan.
1. Macam – macam web server
Beberapa web server yang sering digunakan di internet adalah;
1. Apache Web Server
2. Web Server Litespeed
3. Web Server Nginx
4. Internet informasion Server, IIS
Pada pembahasan Internet Information Service ini, yang banyak dibahas adalah Internet
Information Service yang terdapat pada Windows 2000 Server dan hanya terbatas pada Files
Transfer Protocol (FTP) dan web saja.
A. Unvalidated input
Semua aplikasi web menampilkan data dari HTTP request yang dibuat oleh user dan
menggunakan data tersebut untuk melakukan operasinya. Hacker dapat memanipulasi
bagian-bagian pada request (query string, cookie information, header) untuk membypass
mekanisme keamanan.
Berikut ini tiga jenis penyerangan yang berhubungan dengan masalah ini:
• Cross site scripting
• Buffer overflows
• Injection flaws
Ada beberapa hal yang dapat dicatat ketika menangani validasi pada aplikasi kita. Pertama,
adalah tidak baik pada aplikasi web untuk percaya pada client side scripting. Script tersebut
biasanya menghentikan form submission apabila terdapat sebuah input yang salah. Akan
tetapi, script tersebut tidak dapat mencegah hacker untuk membuat HTTP requestnya sendiri
yang terbebas dari form. Menggunakan client side validation masih bisa membuat aplikasi
web yang mudah diserang.
Pada contoh-contoh tadi, kita dapat mengembangkan filter atau komponen yang dapat
dijalankan pada sensitive resources. Filter atau komponen tadi dapat menjamin hanya user
yang terotorisasi dapat mengakases. Untuk melindungi dari insecure Ids, kita harus
mengembangkan aplikasi kita agar tidak percaya pada kerahasiaan dari Ids yang dapat
memberi access control. Pada masalah file permission, file-file tersebut harus berada pada
lokasi yang tidak dapat diakses oleh web browser dan hanya role tertentu saja yang dapat
mengaksesnya.
Authentication dan session management menunjuk kepada semua aspek dari pengaturan user
authentikasi dan management of active session. Berikut ini beberapa hal yang perlu
diperhatikan :
• Password strength – Aplikasi kita harus memberikan level minimal dari
keamanan sebuah password, dimana dapat dilihat dengan cara melihat panjang
dari password dan kompleksitasnya. Contohnya sebuah aplikasi dimana
terdapat user baru yang akan mendaftar : aplikasi tidak mengijinkan password
dengan panjang 3-4 karakter atau kata-kata simpel yang dapat mudah ditebak
oleh hacker.
• Password use – Aplikasi kita harus membatasi user yang mengakses aplikasi
melakukan login kembali ke sistem pada tenggang waktu tertentu. Dengan
cara ini aplikasi dapat dilindungi dari serangan brute force dimana hacker bisa
menyerang berulang kali untuk berhasil login ke sistem. Selain itu, log in yang
gagal sebaiknya dicatat sebagai informasi kepada administrator untuk
mengindikasikan kemungkinan serangan yang terjadi.
• Password storage – password tidak boleh disimpan di dalam aplikasi.
Password harus disimpan dalam format terenkripsi dan disimpan di file lain
seperti file database atau file password. Hal ini dapat memastikan bahwa
informasi yang sensitif seperti password tidak disebarkan ke dalam aplikasi.
• Session ID Protection – server biasanya menggunakan session Id untuk
mengidentifikasi user yang masuk ke dalam session. Akan tetapi jika session
ID ini dapat dilihat oleh seseorang pada jaringan yang sama, orang tersebut
dapat menjadi seorang client.
Salah satu cara yang dapat digunakan untuk mencegah terlihatnya session ID oleh seseorang
pada suatu jaringan yang sama adalah menghubungkan komunikasi antara sever dan client
pada sebuah SSL-protected channel.
B. Buffer overflows
Penyerang dapat menggunakan buffer overflows untuk merusak aplikasi web. Hal ini
dilakukan karena penyerang mengirimkan request yang membuat server menjalankan kode-
kode yang dikirimkan oleh penyerang.
Kelemahan buffer overflow biasanya sulit dideteksi dan sulit dilakukan oleh hacker. Akan
tetapi penyerang masih bisa mencari kelemahan ini dan melakukan buffer overflow pada
sebagian aplikasi web.
Terima kasih atas desain dari Java environment, dimana aplikasi yang berjalan pada J2EE
server aman dari jenis serangan ini. Untuk memastikan keamanan, cara yang paling baik
adalah melakukan pengawasan apabila terdapat patch atau bug report dari produk server yang
digunakan.
C. Injection flaws
Salah satu kelemahan yang populer adalah injection flaw, dimana hacker dapat mengirimkan
atau menginject request ke operating system atau ke external sumber seperti database.
D. Denial of Service
Denial of Service merupakan serangan yang dibuat oleh hacker yang mengirimkan request
dalam jumlah yang sangat besar dan dalam waktu yang bersamaan. Dikarenakan request-
request tersebut, server menjadi kelebihan beban dan tidak bisa melayani user lainnya.
Serangan DoS mampu menghabiskan bandwidth yang ada pada server. Selain itu dapat juga
menghabiskan memory, koneksi database, dan sumber yang lain.
Pada umumnya sangat sulit untuk melindungi aplikasi dari serangan ini. Akan tetapi masih
ada cara yang dapat dilakukan seperti membatasi resource yang dapat diakses user dalam
jumlah yang minimal. Merupakan ide / cara yang bagus untuk membuat load quota yang
membatasi jumlah load data yang akan diakses user dari sistem.
Salah satu contoh adalah pada implementasi bulletin board : adanya pembatasan user pada
saat melakukan search, dimana operasi ini hanya dapat dilakukan setiap 20 detik. Dengan
cara ini dapat dipastikan bahwa user tidak bisa menghabiskan koneksi dari database.
Solusi yang lain adalah mendesain aplikasi web dimana user yang belum terotorisasi hanya
memiliki akses yang sedikit atau tidak memiliki akses ke content web yang berhubungan
dengan database.