Anda di halaman 1dari 14

1.

Pengertian Web Server


Web Server adalah software server yang menjadi tulang belakang dari World Wide Web
(WWW). Web server menunggu permintaan dari client yang menggunakan browser seperti
netscape navigator, Internet Explorer, modzilla, dan program browser lainnya. Jika ada
permintaan dari browser, maka web server akan memproses permintaan itu dan kemudian
memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini
mempunyai format yang standar disebut dengan format SGML ( Standard General Markup
Language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan
kemampuan browser itu. Contohnya ialah bila data yang dikirim berupa data gambar, browser
yang hanya mampu menampilkan text (misalnya lynx) tidak akan mampu menampilkannya dan
jika ada akan menampilkan alternatifnya saja.

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

A. Web Server Apache


Apache merupakan web server yang paling banyak dipergunakan di Internet. Program ini
pertama kali didesain untuk sistem operasi lingkungan UNIX. Namun demikian, pada beberapa
versi berikutnya Apache mengeluarkan programnya yang dapat dijalankan di Windows NT.
Apache mempunyai program pendukung yang cukup banyak. Hal ini memberikan layanan yang
cukup lengkap bagi penggunanya. Beberapa dukungan Apache :
1. Kontrol Akses.
Kontrol ini dapat dijalankan berdasarkan nama host atau nomor IP
2. CGI (Common Gateway Interface)
Yang paling terkenal untuk digunakan adalah perl (Practical Extraction and Report
Language), didukung oleh Apache dengan menempatkannya sebagai modul (mod_perl)
3. PHP (Personal Home Page/PHP Hypertext Processor);
Program dengan metode semacam CGI, yang memproses teks dan bekerja di server.
Apache mendukung PHP dengan menempatkannya sebagai salah satu modulnya
(mod_php). Hal ini membuat kinerja PHP menjadi lebih baik
4. SSI (Server Side Includes)

Fasilitas atau ciri khas dari web server Apache adalah :


1. Dapat dijadikan pengganti bagi NCSA web server.
2. Perbaikan terhadap kerusakan dan error pada NCSA 1.3 dan 1.4.
3. Apache merespon web client sangat cepat jauh melebihi NCSA.
4. Mampu di kompilasi sesuai dengan spesifikasi HTTP yang sekarang.
5. Apache menyediakan feature untuk multihomed dan virtual server.
6. Kita dapat menetapkan respon error yang akan dikirim web server
dengan menggunakan file atau skrip.
7. Server apache dapat otomatis berkomunikasi dengan client browsernya
untuk menampilkan tampilan terbaik pada client browsernya. Web
server Apache secara otomatis menjalankan file index.html, halaman
utamanya, untuk ditampilkan secara otomatis pada clientnya.
8. Web server Apache mempunyai level-level pengamanan.
9. Apache mempunyai komponen dasar terbanyak di antara web server
lain.
10. Ditinjau dari segi sejarah perkembangan dan prospeknya, Apache web
server mempunyai prospek yang cerah. Apache berasal dari web server
NCSA yang kemudian dikembangkan karena NCSA masih
mempunyai kekurangan di bidang kompatibilitasnya dengan sistim
operasi lain. Sampai saat ini, web server Apache terus dikembangkan
oleh tim dari apache.org.
11. Performasi dan konsumsi sumber daya dari web server Apache tidak
terlalu banyak, hanya sekitar 20 MB untuk file-file dasarnya dan setiap
daemonnya hanya memerlukan sekitar 950 KB memory per child.
12. Mendukung transaksi yang aman (secure transaction) menggunakan
SSL (secure socket layer).
13. Mempunyai dukungan teknis melalui web.
14. Mempunyai kompatibilitas platform yang tinggi.
15. Mendukung third party berupa modul-modul tambahan.

Kelebihan dan Kekurangan


1. Open Source
2. Proses instalasinya mudah
3. Mudah untuk dikustomisasi (Apache hanya punya 4 file konfigurasi) ataupun
menambah
peripheral dalam web servernya
4. Bisa digunakan di berbagai platform mesin dari mainframe sampai embedded
system
5. Ada komunitas yang besar sehingga mudah mencari solusinya jika ditemukan
masalah
6. Mudah dicari di internet
7. Server Apache otomatis berkomunikasi dengan clientnya untuk mendapatkan
tampilan web terbaik
8. Keamanannya bagus dan bisa menggunakan SSL (Secure Socket Layer)
9. Tidak bisa mengatur load seperti IIS sehingga akan terus memfork proses baru
sampai dalam batas yang diijinkan OS. Akan memudahkan penyerang karena
RAM akan cepat habis
10. Mudah diserang oleh DoS (pada Apache versi 1.3 dan versi 2 sampai versi
2.0.36)
11. Apache tidak memproses karakter kutip dalam string Referrer dan User-Agent
yang
dikirimkan oleh Client. Ini berarti Client dapat memformulasi inputnya secara
hati-hati untuk merusak format baris log akses

A. Web Server Litespeed


Litespeed web server merupakan teknologi baru yang diciptakan untuk menggantikan Apache
Web Server di masa mendatang. Litespeed menurut hasil riset mempunyai kelebihan yaitu 50%
lebih cepat dalam memproses PHP dan lebih cepat 6x dibandingkan Apache Web Server.
Ini dia beberapa detail kelebihan Litespeed Web server:
1. Performa PHP mampu meningkat 50%
2. Mampu melebihi performa Apache hingga 6x lebih cepat
3. Pembatasan validasi HTTP request
4. Anti DDoS
5. Pencegahan System Overloading
6. Recover dari kegagalan secara langsung dan otomatis
7. Kompatibel dengan Cpanel, Plesk dan direct admin
8. Dukungan kompatibilitas dengan mod_security request filtering
9. Kompatibel dengan Apache .htaccess

A. Web Server Nginx


Nginx dengan cepat memberikan konten statis dengan penggunaan efisien sumber daya
sistem.Hal ini dapat menyebarkan dinamis HTTP konten di jaringan menggunakan FastCGI
handler untuk script , dan dapat berfungsi sebagai perangkat lunak yang sangat mampu
penyeimbang beban.
Nginx menggunakan asynchronous -event pendekatan untuk menangani permintaan yang
diprediksi memberikan kinerja yang lebih bawah beban, kontras dengan Apache HTTP server
model yang menggunakan berulir atau proses yang berorientasi pada pendekatan-permintaan
penanganan.

Fitur yang dimiliki sebagai berikut:


1. Handling of static files, index files, and auto-indexing
2. Reverse proxy with caching
3. Load balancing
4. Fault tolerance
5. SSL support
6. FastCGI support with caching
7. Name- and IP-based virtual servers
8. FLV streaming
9. MP4 streaming, using the MP4 streaming module
10. Web page access authentication
11. gzip compression
12. Ability to handle more than 10000 simultaneous connections
13. URL rewriting
14. Custom logging
15. Server-side includes
Kelebihan dan Kekurangan yang dimilikinya;
1. Performanya yang tinggi, stabil, memiliki banyak fitur
2. Mudah dikonfigurasi
3. Menggunakan hanya sedikit sumberdaya pada server
4. Tidak bergantung kepada thread untuk melayani klien
5. Belum support IPV6
6. Update/patchnya versi terbarunya lama keluar
7. Fast-CGInya tidak berfungsi maximal
8. Pemakainya tidak sebanyak Apache atau IIS (komunitasnya tidak sebanyak
Apache atau IIS)

A. Web Server IIS


Internet Information Service (IIS) adalah komponen yang dapat digunakan untuk mengelola web,
File Transfer Protocol (FTP), Ghoper, dan NNTP. Komponen IIS terdapat pada sistem operasi
Windows NT ,Windows 2000, Windows XP, 7 dan Windows Server 2003.
Pada Windows 98, supaya dapat mengelola Web diperlukan komponen Personal Web Server
(PWS) walaupun tidak terdapat fasilitas untuk FTP. PWS juga merupakan bagian dari IIS.
Komponen PWS terdapat pada CD master Windows 98 dan terletak pada direktori \add-ons\pws.
Instalasi PWS dapat dilakukan dari <Drive CD ROOM>:\ADD-ONS|PWS|SETUP.

Komponen pendukung IIS antara lain :


1. Protocol jaringan TCP/IP.
2. Domain Name System (DNS).
3. Direkomendasikan untuk menggunakan format NTFS demi keamanan.
4. Software untuk membuat situs web, salah satunya Microsoft FrontPage.

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.

Kelebihan dan Kekurangan


1. Lebih kompatibel dengan Windows karena memang IIS adalah keluaran
Microsoft
2. Unjuk kerja untuk PHP lebih stabil, handal, dan cepat
3. Adanya kemampuan diagnostik untuk pelacakan kesalahan (bisa dikustomisasi)
4. Untuk platform .NET, user hanya bisa menggunakan IIS
5. Memiliki score tertinggi dari web server lainnya untuk masalah bug
6. Tidak gratis (web server berbayar)
7. Port 80 (Port untuk layanan web) sangat mudah diserang oleh cracker
8. Keamanan file log juga sangat mudah ditembus sehingga system password pun
akan mudah didapatkan

1. Keamanan pada aplikasi web


Berikut ini adalah 10 celah tersebut dan cara agar kita dapat mengatasi masalah tersebut.

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.

Kedua, beberapa aplikasi menggunakan pendekatan "negative" (negative approach) pada


validasinya : Aplikasi mencoba mendeteksi jika terdapat elemen yang berbahaya pada
request parameter. Masalah dari jenis pendekatan ini adalah hanya bisa melindungi dari
beberapa serangan yaitu : hanya serangan yang dikenali oleh validation code yang dicegah.
Ada banyak cara dimana hacker dapat membypass keamanan dari unvalidated input; Masih
ada kemungkinan dimana cara yang baru tidak dikenali oleh aplikasi dapat membypass
validasi dan melakukan perusakan. Adalah cara yang lebih baik untuk menggunakan
pendekatan "positive" (positive approach) yaitu : membatasi sebuah format atau pola untuk
nilai yang diijinkan dan memastikan input tersebut sesuai dengan format tersebut.

A. Broken Access Control


Banyak aplikasi yang mengkategorikan user-usernya ke dalam role yang berbeda dan level
yang berbeda untuk berinteraksi dengan content yang dibedakan dari kategori-kategori
tersebut. Salah satu contohnya, banyak aplikasi yang terdapat user role dan admin role :
hanya admin role yang diijinkan untuk mengakses halaman khusus atau melakukan action
administration.
Masalahnya adalah beberapa aplikasi tidak efektif untuk memaksa agar otorisasi ini bekerja.
Contohnya, beberapa program hanya menggunakan sebuah checkpoint dimana hanya user
yang terpilih yang dapat mengakses : untuk proses lebih lanjut, user harus membuktikan
dirinya terotorisasi dengan menggunakan user name dan password. Akan tetapi, Mereka
tidak menjalankan pengecekan dari checkpoint sebelumnya : dimana apabila user berhasil
melewati halaman login, mereka dapat bebas menjalankan operasi.

Masalah lain yang berhubungan dengan access control adalah:


• Insecure Ids – Beberapa site menggunakan id atau kunci yang menunjuk kepada
user atau fungsi. ID dapat juga ditebak, dan jika hacker dapat mudah menebak ID
dari user yang terautorisasi, maka site akan mudah diserang.
• File permissions – Kebanyakan web dan aplikasi server percaya kepada external
file yang menyimpan daftar dari user yang terotorisasi dan resources mana saja
yang dapat dan/atau tidak dapat diakses. Apabila file ini dapat dibaca dari luar,
maka hacker dapat memodifikasi dengan mudah untuk menambahkan dirinya
pada daftar user yang diijinkan.

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.

A. Broken Authentication dan Session Management

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.

A. Cross site scripting


Cross site scripting terjadi ketika seseorang membuat aplikasi web melalui script ke user lain.
Hal ini dilakukan oleh penyerang dengan menambahkan content (seperti JavaScript,
ActiveX, Flash) pada request yang dapat membuat HTML output yang dapat dilihat oleh user
lain. Apabila ada user lain yang mengakses content tersebut, browser tidak mengetahui
bahwa halaman tersebut tidak dapat dipercaya.
Cara yang bisa digunakan untuk mencegah serangan cross site scripting adalah dengan
melakukan validasi data masuk dari user request (seperti header, cookie, user parameter, ...).
Cara negative approach tidak digunakan : mencoba untuk memfilter active content
merupakan cara yang tidak efektif.

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.

E. Insecure Configuration Management


Biasanya kelompok (group) yang mengembangkan aplikasi berbeda dengan kelompok yang
mengatur hosting dari aplikasi. Hal ini bisa menjadi berbahaya, dikarenakan keamanan yang
diandalkan hanya dari segi aplikasi : sedangakan dari segi server juga memiliki aspek
keamanan yang perlu diperhatikan. Adanya kesalahan dari konfigurasi server dapat melewati
aspek keamanan dari segi aplikasi.
Berikut ini adalah kesalahan konfigurasi server yang bisa menimbulkan masalah :
1. Celah keamanan yang belum dipatch dari software yang ada pada server –
administrator tidak melakukan patch software yang ada pada server.
2. Celah keamanan server dimana bisa menampilkan list dari direktori atau juga
serangan berupa directory traversal.
3. File-file backup atau file contoh (sample file), file-file script, file konfigurasi
yang tertinggal / tidak perlu.
4. Hak akses direktori atau file yang salah.
5. Adanya service yang seperti remote administration dan content management
yang masih aktif.
6. Penggunaan default account dan default password.
7. Fungsi administrative atau fungsi debug yang bisa diakses.
8. Adanya pesan error yang informatif dari segi teknis.
9. Kesalahan konfigurasi SSL certificate dan setting enkripsi.
10. Penggunaan self-signet certificates untuk melakukan autentikasi.
11. Penggunaan default certificate.
12. Kesalahan autentikasi dengan sistem eksternal.

Anda mungkin juga menyukai