1. PENDAHULUAN
Orang-orang Babilonia terkenal sebagai penemu mata uang dan menghususkan usahanya pada
kegiatan hedonistik. Akan tetapi, berbeda dengan penduduk daerah lain pada masanya, orang-orang
Babilonia berbahasa tunggal. Bahasa ini memiliki kekuatan yang memampukan tiap penduduk
Babilonia untuk mengembangkan beragam struktur yamg mengagumkan, misalnya Taman Gantung
Babilonia salah satu keajaiban dari tujuh keajaiban dunia.
Namun, menurut catatan berbahsa Ibrani pada Alkitab, kesatuan bahsa Babilonia itu justru menjadi
kematiannya sendiri. Dengan pongahnya, orang-orang Babilonia ingin membangun menara setinggi
langit agar dapat sejajr dengan Tuhan. Tuhan menjadi marah dan membuat orang-orang Babilonia
berbicara dalam ragam bahasa. Akibatnya, orang-orang babilonia tak dapat lagi berkomunikasi satu
sama lain dan pembangunan konstruksi menara itu terhenti dan ketinggiannya pun tak pernah
sampai ke langit. Demikianlah menara tersebut menjadi terkenal dengan sebutan Menara Bebel, dan
kata Babilonia berubah arti menjadi tempat kekacauan. Demikian pula halnya dengan internet dan
World Wide Web atau Web, telah menjadi suatu kerajaan yang memiliki beragam bahasa yang
membingungkan dan mengacaukan, dan semua iu dapat berpotensial menjadi penyebab
kejatuhannya sendiri.
Pada tahum 1995, kehadiran web di mana-mana masih merupakan masa-masa indah, dan
kehadiran bahasa-bahasa web serta tekonologinya pada waktu itu tak ubahnya bagaikan permainan.
Akibatnya , para hackersaat itu tak terasa tertarik unutuk menyusup ke dalam situs web. Namun
kondisi sekarang itu telah berubah, dari satu bentuk tunggal kegunaan ke beragam jenis bahasa dan
teknologi yang ternyata malah membuka jalan hadirnya hacker. Serta-merta mereka setiap haribisa
menjadi ihak tak terduga yang menyerang tiap individu, perusahaan, organisasi, atau pemerintahan.
Lingkungan dewasa ini tak berdaya membendung teroris cyber belum hilang dari peredaran, dan
seperti pepatah Tangkaplah si pencuri dengan menggunakan pencuri. Oleh karena itu,
pertimbangkanlah untuk memahami ide-ide atau gagasan-gagasan mengenai cara kerja keamanan.
Bila anda tidak memahami permainannya, maka anda akan tersapu olehnya
Bab ini tidak dimaksudkan untuk menjadi standarde facto mengenai penjelasan lengkap bahasa-
bahasa pemrograman web, melainkan memperkenalkan kepada para programer web dan ahli
keamanan mengenai bagaimana sintaksisnya, dan potensi-potensi keamanannya. Untuk memahami
materi-materi di bab-bab terakhir, anda perlu memahami konsep-konsep yang dikemukakan di bab-
bab sebelumnya. Oleh karena itu, bacalah dengan cermat, bila perlu ulangi lagi, dan jangan khawatir
bila anda belum separuhnya memahami isinya; anda pasti dapat memahaminya sewaktu
meneruskan membaca buku ini.
Bahasa-bahasa Pemrograman Web
2. Sebelum dua buah komputer pertama dapat saling berbicara, mereka harus terprogram untuk
dapat berbicara dalam bahasa yang sama. Ada sejumlah bahasa web yang populer dan masing-
masing memiliki kekuatan dan kelemahan. Di satu sisi, bahasa yang ringan tak berpangaruh kuat
seperti HTML bisa menjadi bahasa pilihan anda. Bahasa HTML sederhana, langsung ke sasarandan
hanya memiliki kesulitan Namun di sisi lain, jika anda memerlukan interaktivitas, update data secara
dinamis, dan tampilan grafisyang kompleks, maka bahasa java adalah pilihan terbaikanda. Selain itu,
untuk memahami bagaimana web server berhubungan dengan browser klien(dengan demikian
dapat menemukan kelemahan impelementasinya). Anda harus memahami teknologi yang ada di
baliknya.
Dalam bab ini kami mengetengahkan bahasa-bahasa web yang populer, tentu saja, pembahasannya
tidak menghadirkan secara mendalam daftar bahasa-bahasa web, namun dapat memberi pengertian
kepada anda perihal bahasa-bahasa utama yang digunakan di web. Bahasa-bahasa berikut ini
mencakup mayoritas infrastruktur teknologi web, karena itulah pemahaman atas bahasa-bahasa
tesebut menjadi pokok.
HTML
Ekstensi file: .html, .htm, .html4
Hyper Text Markup Language (HTML) yang ditemukan oleh Tim Bernerrs-Lee pada tahun 1989,
merupakan dasar framework internet. Hampir tiap situs web yang ada menggunakan bahasa HTML,
untuk menampilkan teks, grafis, suara, dan animasi. Pihak yang menjadi caretaker atas spesifikasi
tersebut adalah World Wide Web Consurtium (W3C) (http:// www.w3.org).
Walaupun bahasa itu sendiri merupakan bahasa baru, namun ia sebenarnya berasal dari bahasa
yang lama yang disebut Standard Generalized Markup Language (SGML). Perkembangan HTML
sendirisudah dimulai kurang lebih sepuluh tahun sebelum bahasa itu diperkenalkan sewaktu BILL
AKTINSON menmukan HyperCardlah untuk komputer Macintosh dan sistem operasi MacOS. Idde di
balik HyperCardlah yang mendukung bahasa HTML, yaitu hyperlikinking, yang berarti kemampuan
untuk menghubungkan link dari suatu kata atau daerah di suatu halaman web ke daerah atau
halaman lain. Konsep tersebut sederhana, namun sebelum kehadiran HyperCard tak pernah terpikir
untuk diterapkan.
HTML tersusun dari suatu rangkaina elemen. Elemen-elemen itu berlaku sebagai bahasa yang
memberitahu browser penerima untukmenampilkan elemen-elemen tertentu pada layar. Melalui
penelitian, kami mengetahui bahwa elemen HTML yang sederhana dan kelihatannya tidak merusak
itu ternyata dapat digunakan untuk memperoleh akses ilegal ke server web. Tabel 1-1 berisi daftar
elemen-elemen HTML dan implisai keamanannya.
Elemen-elemen HTML yang lain mungkin saja beresiko keamanan, namun daftar pada tabel 1-1
menjadi awal untuk memahami implikasi keamanan dari HTML dan kegunaannya dapat dilihat di
http://-www.w3.org/tr/html401 / pada bagian spesifikasiHTML 4.01.
Tip-tip untuk membuat situs web anda menjadi lebih mudah diakses oleh beragam browser dapat
dilihiat di layanan validasi HTML di W3C (http://www.w3.org/people/ragget/tidy/ )
3. Tabel 1-1 Elemen-elemen HTML: atribut-atributnya dan implikasi keamanannya
Elemen/atribut implikasi keamanan
Form untuk input user
<form> Form untuk input user
sewaktu program menerima input dari user,
resiko keamanan muncul. Kenyataannya di
sinilah letak datangnya banyak serangan.
Pengiriman karakter-karakter ke suatu program
yang tak membutuhkan karakter tersebut
memunculkan hasil abnormal
<form action>
Atribut action
Atribut <form> ini menentukan program yang
dieksekusi pada server web. Dengan mengetahui
nama program yang memproses penyedia data
user, penyerang dapat mempelajari onformasi
berharga tentang server web dan menemukan
backup atau versi sebelmunya dari program
tersebut pada direktori yang sama atau
direkotori lain
<form method>
Atribut method
Atribut <form> menentukan mekanisme
pengiriman enyedia informasi user ke program
pemrosesnya pada server web. Dua methode
pengiriman yang di pakai adalah POST dan GET.
Dengan memahamimethode engiriman ini,
penyerang dapat mengendus informasi itu, atau
lebih buruk lagi, mengubah informasi yang
sedang dikirim sehingga menimbulkan hasil
abnormal, kami membahas GET dan POST lebih
terperinci dari bab 3
<script
Language=<variabel>> Scrippting
Elemen <script> yang digunakan bersama
dengan atribut language dapat membuat
penyerang memodifikasi script clien-side yang
sedang dikirim ke browser. Jika ia dapat
memodifikasi clien-side scripting itu , maka ia
dapat membaypass filtering tertentu atau scrip-
script disinfektan. Script clien-side mencakup
- javascript
4. - vbscrip
- jscript
- XML
<input>
Kontrol input form
Elemen <input> digunakan sebagai kontrol input
untuk suatu form . atribut tertentu dapat diubah
untuk mengirim data yang tak diinginkan ke
server web
<input type=hidden>
Atribut type
Jika nilai hidden diisikan pada atribut type,
maka penyerang dapat mengubah atribut
value ke sesuatu yang lain yang tak diinginkan .
misalnya , beberapa situs web yang
menggunakan atribut tersembunyi untuk
menyimpan nilai harga dari suatu item pada
daftar belanja . dapat membuat penyerang
mampu mengubah harga item tersebut secara
manual ke nulai harga sesuai keinginannya. Jika
tidak ada proses server-side danvalidasi harga, ia
dapat membeli item tersebut secara online
dengan harga yang sangat murah
<input
Maxlength=<varibel>> Atribut maxlength
Atribut maxlength dapat dibah oleh si
penyerang sehingga menyebabkan atribut itu
mengirimkan string bernilai besar, yang mampu
menonaktifkan server web bila sebelumnya tidak
terproses secara teratur
<input size=<variabel>>
Atribut size
Mirip dengan atribut maxlength , atribut size
dapat juga diubah oleh si penyerang sehingga
atribut itu mengirimkan string yang bernilai
besar, yang mampu menonaktifkan server web
bila sebelumnya tidak terproses secara teratur
<applet>
Applet java
Elemen ini digunakan untuk menampilkan atau
menjalankan applet java. Oleh karena java
5. ditransmisikan dalam byte-codde yang sudah
dikenal dan bersih pada eksekusinya, maka ia
dapat dilihat pada kabel dengan menggunakan
peranti paket analisis ( paket analyzer ) seperti
snort atau etherpeek. Informasi lebih jauh
mengenai decom paling applet-applet java dan
tag <applet> ada di bagian berikutnya yang
membahas java pada bab ini
<object>
Elemen ini secar khusus digunakan untuk
menampilkan kontrol activex, namun dapat
digunakan juga untuk applet java. Penyerang
dapat mengirim e-mail dengan format HTML
dan dapat membuat pembaca e-mail itu
mengaktifkan activex sehingga sistem yang
bersangkutan diambil alih oleh penyerang.
Elemen <object> merupakan salah satu dari
sekian banyak cara yang ampuh untuk
menyebarkan virus e-mail
<embed> Elemen ini secara khusus digunakan bersama
dengan tag <object> untuk menampilkan kontrol
activex dan plug-in netscape