際際滷

際際滷Share a Scribd company logo
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
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/ )
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
- 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
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

More Related Content

Abang

  • 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