Setting Internet HP CDMA ZTE C300 Pada Linux Ubuntu

Keberadaan internet sudah menjadi makanan pokok bagi keseharian orang-orang. Bahkan seorang teman penulis pernah mengatakan, sehari tidak berinternet membuat hidup terasa hampa. :D ~~. Dan sedikit banyak orang kecanduan dalam memperoleh informasi melalui internet karena selain informasi yang disajikan selain cukup aktual, namun juga secara cepat informasi didapatkan dalam hitungan menit. Bagi si pemberi informasi tidak perlu lagi harus ke tempat percetakan untuk sekedar memberi tahu kepada khalayah bahwa terdapat informasi baru yang menarik. Yups, seperti intro-nya harus di bedakan menjadi artikel tersendiri. :D ~~ Bisa bisa penulis keasikan membuat intro sampai tutorial ini habis. :D ~ Seperti biasa, untuk tutorial linux kali ini penulis akan mencoba menjelaskan tidak secara terperinci namun mudah-mudahan jelas.
HP yang penulis gunakan adalah Samsung ZTE C300 yang telah dipaketkan dengan Fren ( waktu penulis beli seharga 388 ribu ). Relatif murah namun dapat diandalkan. Perlu diketahui penulis telah melakukan test di lingkungan UBUNTU 8.04 ( hardy heron ). Ubuntu sendiri bisa anda dapatkan di http://shipit.ubuntu.org . Dan satu lagi yang dibutuhkan yaitu kabel usb yang biasa digunakan untuk kamera digital ataupun card reader.
Langsung saja pasang kabel usbnya.

Penginstallan modul driver hp zte c300 dilakukan dalam mode root.
( perhatian : perintah yang diketikkan hanya yang di beri cetak tebal /bold )

Untuk mendeteksi apakah usb dan handphone telah terpasang dengan benar
root@alk-linux:/home/alk# lsusb

tampilan di layar anda mungkin sedikit berbeda ….

Bus 005 Device 003: ID 064e:a100 Suyin Corp.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 006: ID 05c6:3197 Qualcomm, Inc. CDMA Wireless Modem/Phone
Bus 002 Device 003: ID 15ca:00c3
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

disini terlihat jelas hp cdma zte c300 dideteksi sebagai Wireless Modem.
Setelah terdeteksi langsung saja install modul yang cocok untuk driver modem hp diatas.

root@alk-linux:/home/alk# sudo modprobe usbserial vendor=0×05c6 product=0×3197

kemudian cek, apakah sudah terdeteksi dengan baik …
root@alk-linux:/home/alk# dmesg

kira-kira tampilannya seperti ini
[ 2912.143117] usbcore: registered new interface driver usbserial
[ 2912.143842] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
[ 2912.144546] usbserial_generic 2-1:1.0: generic converter detected
[ 2912.145274] usb 2-1: generic converter now attached to ttyUSB0
[ 2912.145663] usbserial_generic 2-1:1.1: generic converter detected
[ 2912.146305] usb 2-1: generic converter now attached to ttyUSB1
[ 2912.146685] usbcore: registered new interface driver usbserial_generic
[ 2912.146689] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial Driver core

Selanjutnya kita akan melakukan koneksi dengan menggunakan wvdial, secara default wvdial di ubuntuk 8.04 sudah terinstall dengan baik, namun jika belum terinstall …
root@alk-linux:/home/alk# apt-get install wvdial

setelah selesai, langsung kita edit konfigurasi si wvdial untuk dapat melakukan koneksi internet.
root@alk-linux:/home/alk# gedit /etc/wvdial.conf &

tanda & itu hanyalah sebagai operand untuk menjalankan command yang ada tersebut secara background.

Yang perlu ditambahkan kedalam /etc/wvdial.conf adalah sebagai berikut :

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Baud = 460800
Modem Type = USB Modem
New PPPD = yes
Modem=/dev/ttyUSB0
ISDN=0
Phone=#777
Username = m8
Password = m8
Stupid Mode = yes

Setelah di save, langsung di coba …

root@alk-linux:/home/alk# wvdial

–> WvDial: Internet dialer version 1.60
–> Cannot get information for serial port.
–> Initializing modem.
–> Sending: ATZ
ATZ
OK
–> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
–> Modem initialized.
–> Sending: ATDT#777
–> Waiting for carrier.
ATDT#777
CONNECT
–> Carrier detected. Starting PPP immediately.
–> Starting pppd at Thu Jun 12 13:04:41 2008
–> Pid of pppd: 6992
–> Using interface ppp0
–> pppd: ��[06][08]H�[06][08]
–> pppd: ��[06][08]H�[06][08]
–> pppd: ��[06][08]H�[06][08]
–> pppd: ��[06][08]H�[06][08]
–> local IP address 10.66.30.173
–> pppd: ��[06][08]H�[06][08]
–> remote IP address 192.168.240.83
–> pppd: ��[06][08]H�[06][08]
–> primary DNS address 202.171.1.18
–> pppd: ��[06][08]H�[06][08]
–> secondary DNS address 202.171.1.2
–> pppd: ��[06][08]H�[06][08]


jika terdapat tampilan seperti ini maka anda sudah dapat berinternet ria .. :D ~~

root@alk-linux:/home/alk# ifconfig


ppp0 Link encap:Point-to-Point Protocol
inet addr:10.66.30.173 P-t-P:192.168.240.83 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:64 (64.0 B) TX bytes:97 (97.0 B)


Selamat mencoba.

Greetz : b_scorpio, phii_, safril, fadli, minangmedia, dr.emi, ilmuwebsite community. :D
Hi My Jojo :-) . Have a nice day.

Sumber dari situs Ilmu Website dalam kategori linux dengan judul Ber-internet-an dengan HP CDMA ZTE C300

UJIAN AKHIR SEMESTER KEAMANAN JARINGAN

NAMA                                    : I GEDE SUKRAADA

NIM                                        : 0615353085

TEMPAT MAGANG            : DINAS PENDIDIKAN PROVINSI BALI

E-mail                                     : criezinvain@gmail.com

NAMA WEB BLOG             : http://dhayreddle.co.nr

 

 

1.   Keamanan jaringan tidak terlepas dari sistem pengalamatannya. Untuk itu apa yang anda dapat jelaskan dari alamat 195.166.15.0/25? Sedangkan apa analisa anda dengan pengalamatan 170.10.155.21:25? Apa hubungannya dengan sistem keamanan jaringan?

     

Jawab :

-  Artinya IP yang terhubung dalam 1 network yang terhubung hanya 25 jenis IP Address

- Hubungannya dengan sistem keamanan jaringan adalah adanya pembatasan akses computer kedalam network ini dengan memberinya 25 limit access.

 

2.   Subnetting merupakan bagian dari strategi pengalamatan. Menurut analisa anda apakah subnettting ada hubungannya dengan sistem keamanan jaringan? Misalkan dalam sebuah LAN terdapat 3 PC yang terhubung dengan 1 switch yang masingmasing memiliki IP 192.168.1.11/25, 192.168.1.12/25 dan 192.168.1.200/25, jika salah satu dari ketiga PC tersebut terkena Virus dan tidak ada antivirusnya bagaimana dengan PC yang lain, apakah akan tertular virus juga? Apa analisa anda?

 

Jawab :

Analisa saya subneting sangat berhubungan dengan system keamanan jaringan karena dapat membatasi IP dalam network kita, jika salah satu dari computer yang ada dalam network kita kena virus otomotis semua computer dalam network kita terkena virus juga.

 

3.   Jika email anda tiba-tiba mendapat kiriman mail yang sangat banyak dari pengirim yang tidak anda kenal sebelumnya (terjadi kebanjiran mail) dimana kejadian ini terus berulang pada hari-hari selanjutnya, menurut anda apa penyebabnya? Dan apa langkah anda untuk mengatasi gangguan tersebut?

 

Jawab :

 

·        Menurut saya adalah pesan dari mailist yang terlalu banyak langkah saya untuk mengatasi masalah ini adalah:

·        Menggunakan fasilitas No Mail pada yahoo karena mail saya adalah yahoo(tidak menerima mail dari mailist) dan mengecek pesan pada web yahoo groups. Langkahnya adalah dengan cara:

·        Akseslah halaman web dari milis tersebut. Tak perlu khawatir jika Anda tidak tahu apa alamatnya, sebab ini sudah ada rumusnya, yaitu: http://groups.yahoo.com/group/nama_group. Gantilah “nama_group” dengan nama milis yang Anda ikuti. Misalnya nama milis Anda adalah penulislepas, maka alamat webnya adalah http://groups.yahoo.com/group/penulislepas. Jika Anda tidak tahu apa nama milisnya, coba cek alamat email dari milis tersebut. Jika alamatnya adalah nonfiksi@yahoogroups.com, maka nama milisnya adalah nonfiksi. Jadi, alamat webnya adalah http://groups.yahoo.com/group/nonfiksi.

·        Anda akan melangkah pada halaman “you mustselect a yahoo profile dan klik halaman continue maka email anda sudah terintegerasi  dengan account anda di yahoo groups.

·        Setelah mengklik “continue” pada langkah keempat di atas, sebenarnya Anda akan otomatis masuk ke halaman web milis Anda. Jika tidak, silahkan akses dengan mengetik alamat situs seperti yang tercantum pada langkah 1 di atas. Di bagian tengah, kolom kanan, Anda akan menemukan tulisan “Most Recent Messages”. Kliklah menu “(Group by Topic)” agar pesan-pesan pada milis tersebut dikelompokkan berdasarkan topiknya

·        Sekarang, kliklah menu Messages yang terdapat pada kolom kiri, bagian atas. Anda akan melihat daftar pesan yang telah masuk ke milis tersebut. Semua pesan dikelompokkan berdasarkan topiknya. Ini akan sangat memudahkan anda dalam membaca pesan-pesan email di milis tersebut. Tampilan pesan-pesan ini bahkan lebih baik dari tampilan pesan email yang Anda baca lewat Yahoo! Mail

·        Jadi, dengan cara ini, Anda tak perlu lagi khawatir bila inbox email Anda penuh, walau Anda mengikuti milis yang paling ramai sekalipun. Pilih saja opsi No Mail, lalu baca pesan-pesan milis Anda lewat web Yahoo! Groups.

 

4.   Jika sebuah perusahaan menyewa anda untuk membangun sistem keamanan jaringan di perusahaan tersebut maka langkah-langkah apa saja yang anda lakukan untuk membuat jaringannya menjadi aman dan terproteksi dengan baik?

     

Jawab :

 

      Yang akan saya lakukan agar jaringannya aman dan terproteksi antara lain :

- Membatasi hak akses dalam jaringan tersebut

- Mengaktifkan firewall atau memasang alat Bantu lain untuk memonitoring keamanan jaringan

- Meng-install anti virus untuk menghalangi virus-virus yang masuk ke dalam jaringan kita

- Memantau jaringan setiap hari

 

5.   Jika sebuah perusahaan menyewa anda untuk membobol sistem di perusahaan lain dan kemudian mencuri serta merusak data-datanya, maka langkah-langkah apa saja yang kira-kira akan anda lakukan untuk melaksanakan pekerjaan tersebut?

 

      Jawab :

      * Wardrive : Wardrive adalah ekspedisi memancing elektronik untuk mencari jaringan wireless yang lemah di sekitar. Wardrive adalah ekspedisi memancing elektronik untuk mencari jaringan wireless yang lemah di sekitar. Kebanyakan, sebagian besar dari jaringan wireless tersebut bahkan tidak diberi password atau enkripsi untuk melindunginya. Kegiatan ini dilakukan untuk mencari jaringan mana saja yang akan dijadikan obyek serangan. Sehingga, kita bisa melakukan serangan terhadap jaringan wireless yang telah kita jadikan target. Untuk melakukan kegitan ini, diperlukan peralatan sederhana untuk memulainya.

Daftar peralatan yang dibutuhkan:
• GPS receiver
jika daerah anda sudah memiliki GPS, anda dapat dengan mudah menandai daerah mana saja yang sudah anda jelajahi dan memberi tanda khusus dimana dalam daerah yang sudah anda jelajahi tersebut terdapat jaringan wireless yang lemah.

• Wireless PCMI card
Peralatan ini dibutuhkan untuk memperluas jaringan wireless anda. Biasanya, peralatan ini dilengkapi dengan jack untuk wireless antenna receiver atau mensupport jaringan selular untuk memperoleh jaringan yang lebih luas.

• Wireless antenna receiver
Peralatan ini dibutuhkan untuk menambah jangkauan wireless PCMI card yang anda punya dengan menghubungkan jack yang dimilikinya ke dalam wireless card anda. Jika wireless card yang anda miliki tidak mempunyai jack, anda bisa membeli wireless antenna yang memakai port usb yang sudah banyak beredar di pasaran.

Pencarian Wireless Network

Kebanyakan jaringan wireless yang beredar tidak mempunyai sekuriti atau enkripsi yang melindunginya. Untuk melacaknya, dibutuhkan peralatan yang mendukung. Ada dua tools yang biasanya dipakai untuk tujuan ini.

• Network Stumbler atau lebih dikenal NetStumbler
Software berbasis windows ini sangat mudah mencari sinyal wireless yang dipancarkan dari hotspot ke pengguna. Penulis banyak menjumpai para pengguna wireless memakai software ini untuk mencari lokasi yang tepat untuk mendapat sinyal wireless dari hotspot yang kuat atau mensurvei apakah hotspot di daerahnya cukup bagus atau tidak.

• Kismet
Salah satu fungsi yang hilang dari NetStumbler adalah kemampuan untuk menampilkan SSID dari hotspot. pada access point, mereka selalu rutin membroadcast info ini. cuman, info tersebut kebanyakan berisi SSID yang tidak terbaca atau terenkripsi. Program ini akan mencari dan menampilkan SSID yang tidak di broadcast oleh hotspot dan sangat penting untuk mencari jaringan wireless yang akan diuji.

Memasuki jaringan wireless yang telah ditemukan

Setelah menemukan sebuah jaringan network, langkah selanjutnya adalah mencoba untuk menghubungkan anda ke jaringan tersebut. Jika jaringan tersebut tidak menggunakan sekuriti enkripsi, anda bisa langsung mengakses ke SSID. Jika SSID tidak di broadcast, anda dapat masuk dengan SSID yang sedang tidak di broadcast. Tentu saja, anda dapat dengan mudah menemukan yang tidak di broadcast menggunakan fitur yang ada kismet bukan? Jika jaringan tersebut dienkripsi, anda membutuhkan salah satu dari peralatan dibawah ini.

• CowPatty
Software ini menggunakan metode brute force untuk membuka WPA-PSK, yang mana PSK sendiri dianggap sebagai WEP baru unrtuk keamanan sekuriti wireless di rumah.Progam ini mencoba beberapa dari berbagai pilihan yang berasal dari file dictionary apakah ada yang sesuai dengan apa yang digunakan sebagai kunci tersebut

• ASLeap
jika ada jaringan yang menggunakan LEAP, alat ini bisa digunakan untuk mencari data semacam username dan password yang sedang online di jaringan, dan mengoverride akses pemiliknya.LEAP tidak memproteksi proses tersebut seperti EAP, yang mana itu menjadi kelemahan utama bagi LEAP.

Mengendus atau mencuri Data Wireless

Tidak peduli apakah anda terkoneksi langsung ke jaringan wireless atau tidak,, jika ada jaringan wireless di dalam daerah dekat anda, selalu ada data yang lewat di dalam jaringan kapan pun itu. Untuk mengambil data itu, anda perlu peralatan untuk mengambil atau melihat data tersebut.

• Wireshark (pendahulu Ethereal)
dimana masih terjadi perdebatan bagaimana cara ynag tercepat dalam menyikapi program ini, tidak ada keraguan lagi bahwa software ini sangat berguna. ia dapat mencari jaringan wireless yang ada lengkap dengan info sekuriti. software ini dapat mecuri data dari 802.11 manajemen hotspot dan bisa juga digunakan sebagai alat untuk mencari hotspot yang tidak memproteksi dirinya dengan SSID.

• SwitchSniffer
Software ini adalah program yang bisa mencari user yang aktif di jaringan switch LAN dan dapat mengambil seluruh packet data tanpa persetujuan user yang bersangkutan, software ini juga dapat mendeteksi program arpspoofer sedang berjalan dan membokir sesi pertahanan semacam firewal. jika anda menggabungkan program ini dengan program sniffer yang lain, anda dapat melihat dan mengambil id user dan password dari user lain di dalam jaringan anda.

Tindakan anda selanjutnya?

Setelah anda mengetahui bagaimana proses hacking, terserah anda mau diapakan data ataupun hotspot yang telah anda temukan dan anda eksploitasi itu. jika anda mau melaporkan ke admin hotspot bahwa ada kelemahan, anda telah menjadi bagian dari Ethical hacker. tapi, jika anda malah makin mengeksploitasi hotspot tersebut, maka anda menjadi Blackcap Hacker.

 

 

6.   Syarat untuk menjadi seorang hacker antara lain harus memahami protokol-protokol internet dan pemrograman komputer. Sebutkan dan jelaskan minimal 3 protokol internet yang paling sering dipakai!

 

      Jawab :

      3 Protocol Internet yang harus di pahami untuk menjadi seorang hacker antara lain :

- SMTP (Simple Mail Transfer Protocol)  Protokol standar yang digunakan untuk mengirimkan email ke sebuah server di jaringan internet. Untuk keperluan pengambilan email, digunakan protokol POP.

- HTTP (The Hypertext Transfer Protocol) Merupakan protokol yang digunakan antara user agent dengan proxy/gateway ke sistem  internet lain, misal SMTP, FTP, NNTP, FTP, Gopher dan WAIS.

- POP3 (Post Office Protocol Version 3) Merupakan sebuah protokol yang memungkinkan untuk meakses email yang ada di mail server dari luar menggunakan aplikasi email client seperti Outlook atau Thunderbird. Dengan POP3 aplikasi client tersebut dapat mengambil email yang adadi mail server sehingga dapat dibaca secara offline karena email sudah berada di client. Ada dua jenis mode dalam POP3, mode offline dan mode inline. Dalam mode offline aplikasi client akan mengambil email dari server kemudian email yang diambil akan dihapus dari server, jadi mail server berfungsi  sebagai tempat penyimpanan dari email yang masuk sampai diambil oleh client. Dalam mode inline email yang ada diserver tidak dihapus meskipun sudah diambil oleh client, mode ini cocok untuk tipe user yang memerlukan akses email di lebih dari 1 aplikasi email client, email yang diambil hanya email-email yang baru dan belum pernah diambil dari satu aplikasi client, informasi-informasi email yang sudah diambil disimpan oleh aplikasi client Informasi-informasi general yang diperlukan agar dapat meaksesmail server dengan menggunakan POP3 adalah:

1. Nama POP3 server

2. Username account email

3. Password dari account email tersebut

Informasi-informasi diatas dapat diminta dari email server  administrator.

 

7.   Anda tentu mengenal istilah Access Control List (ACL) yang merupakan materi di Chapter 11 CCNA2, dimana ACL ini diimplementasikan pada router yang dijadikan gateway yang menghubungkan jaringan LAN & WAN, menurut analisa anda adakah kaitan implementasi ACL dengan sistem keamanan jaringan, jelaskan?

 

      Jawab :

      Menurut saya ACL ada kaitannya tentang system keamanan jaringan karena ACL dapat Membatasi trafik jaringan dan meningkatkan unjuk kerja jaringan. Misalnya, ACL memblok trafik video, sehingga dapat menurunkan beban jaringan dan meningkatkan unjuk kerja jaringan dapat mengatur aliran trafik. ACL mampu memblok update routing. Jika update tidak dibutuhkan karena kondisi jaringan, maka bandwidth
dapat dihemat. Mampu membrikan dasar keamanan untuk akses ke jaringan. Misalnya, host A tidak diijinkan akses ke jaringan HRD dan host B diizinkan. Memutuskan jenis trafik mana yang akan dilewatkan atau diblok melalui interface router. Misalnya, trafik email dilayani, trafik telnet diblok. Mengontrol daerah-daerah dimana klien dapat mengakses jaringan. Memilih host-hots yang diijinkan atau diblok akses ke segmen jaringan. Misal, ACL mengijinkan atau memblok FTP atau HTTP.

 

8. Jika anda seorang network administrator di sebuah perusahaan dimana tiba-tiba internet di perusahaan tersebut menjadi sangat lambat dan traffic analyzer menunjukan pemakaian bandwith yang sangat tinggi sedangkan anda tahu bahwa tidak ada yang memakai internet pada saat itu? Menurut analisa anda apa penyebabnya? Bagaimana cara penanggulangannya?

 

      Jawab :

      Menurut analisa saya penyebabnya adalah adanya penyusup yang masuk kedalam network kita yang memanfaatkan fasilitas internet kita secara gratis.

      Cara menanggulanginya adalah dengan cara melacak IP penyusup itu dan langsung meng-kill nya.

 

9.   Firewall memiliki arti yang sangat penting dalam sistem keamanan jaringan, hal-hal apa saja yang dapat dilindungi oleh firewall? Parameter apa yang dipakai untuk melakukan hal tersebut?

 

      Jawab:

Hal-hal yang dapat dilindungi firewall antara lain melindungi sumber daya dari ancaman yang mungkin dating Proteksi ini dapat diperoleh dengan menggunakan beberapa peraturan pengaturan akses (access control), penggunaan SPI, application proxy, atau kombinasi dari semuanya untuk mencegah host yang dilindungi dapat diakses oleh host-host yang mencurigakan atau dari lalu lintas jaringan yang mencurigakan selain itu firewall juga dapat melindungi sebuah komputer yang terhubung ke jaringan dari akses yang tidak dikehendaki.. Firewall juga berevolusi menjadi sebuah kumpulan program yang bertujuan untuk mengamankan komputer secara total, dengan ditambahkannya beberapa fitur pengaman tambahan semacam perangkat proteksi terhadap virus, anti-spyware, anti-spam, dan lainnya. Firewall dapat juga untuk melindungi jaringan secara keseluruhan dari berbagai serangan. Umumnya dijumpai dalam dua bentuk, yakni sebuah perangkat terdedikasi atau sebagai sebuah perangkat lunak yang diinstalasikan dalam sebuah server. Parameter yang dipakai untuk melakukan hal tersebut seperti operating system yang mendukung atau software-software khusus pendukung seperti ipchains, atau iptables pada linux, dsb. Serta konfigurasi hardware yang akan mendukung firewall  tersebut.

 

10. Selain firewall terdapat banyak alat bantu (tools) lain yang dapat dipakai untuk membantu seorang network administrator memonitor keamanan di dalam jaringan. Sebutkan dan jelaskan tools-tools yang anda ketahui!

 

      Jawab :

      Tools yang saya ketahui selain firewall untuk memonitor keamanan di dalam jaringan antara lain :

- Intrusion detection system (IDS): sama seperti firewall IDS ini merupakan penghambat semua niat jahat yang akan megganggu sebuah jaringan. Bedanya IDS ini lebih mau selangkah dengan kemampuannya memberi peringatan kepada admin server saat terjadi sebuah aktivitas tertentu yang tidak diinginkan admin sebagai penanggung jawab. Selainmemberi peringatan dini  IDS juga memberi beberapa alat Bantu untuk melacak jenis dan sumber aktivitas terlarang tersebut

Keamanan Jaringan

Keamanan: menjaga agar resource digunakan sebagaimana mestinya oleh pemakai yang berhak.

Pemakaian alat (termasuk program) dapat menyebabkan kerusakan baik disengaja atau tidak. Pembatasan pemakaian bukan untuk mempersulit tetapi supaya efisien dan tidak merusak.

Proteksi:

  • authentication: pemakai harus dapat membuktikan dirinya. Contoh: user dan password. Dalam jaringan UNPAR ditambahkan sumber akses (komputer yang digunakan) dengan asumsi bahwa pada satu saat satu orang hanya dapat/boleh bekerja dengan satu komputer yang sama.
  • gateway: gerbang masuk menuju sistem dengan firewall
  • attack: serangan terhadap sistem.
  • authorization: pemakai diperbolehkan menggunakan pelayanan dan resource sesuai dengan haknya.
  • monitoring: pengawasan terhadap jaringan
  • Komunikasi terenkripsi: menggunakan enkripsi agar data tak dapat diintip

Authentication. Database tentang user.

Informasi umum tentang pemakai disimpan di file /etc/passwd

Enter command # more /etc/passwd
root:*:0:0:Bozz:/root:/bin/sh
toor:*:0:0:Bourne-again Superuser:/root:
daemon:*:1:1:Owner of many system processes:/root:/sbin/nologin
--- dipotong ---
www:*:10000:65533:WebMaster:/nonexistent:/sbin/nologin
nobody:*:65534:65534:Unprivileged user:/nonexistent:/sbin/nologin
gatut:*:21001:21001:Gatut:/home2/gatut:/usr/local/bin/tcsh
wardojo:*:1004:20:Wardojo:/home2/wardojo:/usr/local/bin/tcsh
ari:*:1005:20:Ari Nurcahyo:/home1/ari:/usr/local/bin/tcsh
tres:*:1006:20:Theresia Maria Sri Prihatiningsih:/home2/tres:/usr/local/bin/tcsh
--- dipotong ---

utilitas UNIX: finger

Defaultnya, menampilkan daftar nama pemakai yang sedang aktif atau informasi lain tentang pemakai tertentu.

[gatut@bsd02 gatut]$ finger
[gatut@bsd02 gatut]$ finger gatut
Login    Name                 TTY  Idle  Login Time   Office  Phone
gatut    V Gatut Harijoso     p0         Wed    00:13 PUSKOM

utilitas UNIX: w dan who

Mengetahui pemakai yang sedang aktif.

[gatut@bsd02 gatut]$ w
[gatut@bsd02 gatut]$ who

utilitas UNIX: last

Menampilkan daftar pemakai terakhir

[gatut@bsd02 gatut]$ last
pemake   ttyp0    10.210.2.51      Tue Jun 29 23:50 - 00:02  (00:11)
yuser    ttyp9    167.205.136.3    Tue Jun 29 23:37 - 23:39  (00:02)
7397023  ttyp1    10.210.2.48      Tue Jun 29 23:07 - 23:24  (00:16)
--- dst -- dipotong --

Pemakai hendaknya selalu memperhatikan pesan “last login from:” pada saat login agar dapat segera diketahui apabila terdapat pemakai lain yang menggunakan user-id tersebut.

Authentikasi melalui sistem (yaitu, password) yang sesungguhnya disimpan dalam bentuk ter-enkripsi dalam file yang tak dapat dilihat oleh pemakai biasa, biasanya /etc/master.passwd atau /etc/shadow.

Authentikasi dapat dilakukan secara terpusat, misalnya dengan Network Information Service (NIS) juga disebut sebagai Yellow Pages (YP), Kerberos (eBones), RADIUS.

Authorization

Pemakai yang sudah terbukti mendapatkan haknya untuk dilayani dan menggunakan resource. Karena pemakai memiliki hak penuh atas file yang dimilikinya, maka pemakai harus mengatur sendiri datanya.

Utilitas UNIX: chmod

Menentukan hak akses file dan directory.

[gatut@bsd02 gatut]$ chmod
[gatut@bsd02 /home]$ ls -l
total 4
drwxr-xr-x  26 gatut    staff        2048 Jun 30 00:03 gatut
drwxr-xr-x   9 pemake   user         1024 May  8 09:41 pemake
drwxr-xr-x   2 noone    nobody       1024 Apr 16 11:53 noone
[gatut@bsd02 /home]$ chmod 0711 gatut
[gatut@bsd02 /home]$ ls -l
total 4
drwx--x--x  26 gatut    staff        2048 Jun 30 00:03 gatut
drwxr-xr-x   9 pemake   user         1024 May  8 09:41 pemake
drwxr-xr-x   2 noone    nobody       1024 Apr 16 11:53 noone
[gatut@bsd02 /home]$

Ada banyak aplikasi yang bekerja di server bekerja atas nama super-user, misalnya agar dapat membaca file password atau menulis data ke dalam sistem (lihat kembali perintah “ps aux”). Semakin kompleks aplikasi, semakin besar kemungkinan terdapat kesalahan (bug). Program yang berjalan atas nama super-user dan salah bisa berakibat fatal. Oleh sebab itu, biasanya aplikasi client-server sebisa mungkin memisahkan akses yang menuntut hak super-user.

Gateway

Gateway yang menghubungkan sistem ke luar dapat menjadi gerbang ke dalam, sehingga ada resiko perusakan atau pencurian data oleh publik yang jauh lebih luas.

Firewall (dinding api) gateway yang menjaga keamanan sistem.

  • Penyaringan packet: hanya paket dari dan ke host, tcp, udp tertentu yang boleh berkomunikasi. Program melakukan pemeriksaan dan penyaringan sehingga hanya pelayanan yang diketahui dan benar yang boleh lewat.
  • Gateway aplikasi: pengiriman dan penerimaan mail gateway untuk mempermudah pemeriksaan dan mengurangi beban jaringan.

Attack

Password terbuka karena: pencurian, catatan yang tercecer, pengamatan (cara mengetik, mengintip paket)

Membelokkan akses: dengan mengganti ip, dns, atau route membelokkan akses ke server palsu untuk menjebak password.

Kesalahan program: tak ada gading yang tak retak Jangan menjalankan program yang tak diketahui. Penyebaran virus melalui email, java script, vb script. Membebani server dengan akses yang besar.

Batu loncatan: biasanya akses dari komputer yang terletak di intranet kurang dibatasi. Apabila akses ke komputer di intranet terbuka, maka pemakai internet dapat masuk ke dalam komputer di intranet, kemudian menggunakan komputer tersebut sebagai batu loncatan.

Monitoring

Mengetahui apa yang terjadi sebagai tindakan preventif dengan membaca catatan system.

UNIX: catatan biasanya disimpan dalam directory /var/log.

/var/log/messages Pesan-pesan dari sistem
/var/log/maillog Transaksi email (SMTP)

Komunikasi Terenkripsi

Komunikasi melalui jaringan publik memungkinkan adanya penyadap ikut mendengarkan percakapan.

Beberapa software:

  • Secure Shell: pengganti telnet dengan enkripsi
  • HTTPS: secure HTTP

Akibat enkripsi, data yang dipertukarkan lebih besar.

Data diri saya bisa dilihat pada halaman about me terima kasih atas kunjungannya.

For the world

Es di Greenland dan Global Warming

Tahun 2006, Greenland mengalami hari-hari mencairnya salju pada ketinggian yang lebih tinggi dibanding ketinggian rata-rata selama 18 tahun. Hasil pengamatan harian menunjukkan mencairnya salju di lapisan es Greenland mengalami peningkatan setiap harinya.

 

Monitoring terhadap pelelehan saju di lapisan es Greenland secara harian dilakukan dengan Special Sensor Microwave Imaging radiometer (SSM/I) yang berada di pesawat ruang angkasa Defense Meteorological Satellite Program. Sensor akan mengukur sinyal elektromagnetik yang dipancarkan lapisan es dan mendeteksi lelehan salju yang terjadi lebih dari 10 hari lebih lama dari rata-rata yang terjadi pada area tertentu di Greenland.

Dengan adanya hasil pengamatan satelit secara periodik memberikan data dan informasi yang akan membantu para peneliti untuk mengetahui kecepatan alir glacier, banyaknya air dari salju yang mencair dan bergabung dengan lautan disekitarnya, juga untuk mengetahui seberapa banyak radiasi Matahari yang akan dipantulkan kembali ke atmosfer.

Salju kering dan basah memang terlihat sama jika dilihat untuk pertama kalinya. Tapi salju yang basah dan salju yang mengalami pembekuan kembali, memiliki tingkat penyerapan radiasi sinar Matahari yang lebih tinggi, dan hanya memantulkan 50-60 persen ke atmosfer. Sedangkan salju kering, memantulkan kembali 85 % radiasi Matahari. Dengan kata lain, salju yang meleleh akan menyerap 3-4 kali energi yang sama dibanding salju kering. Ini tentu akan memberi pengaruh yang besar pada persediaan energi di Bumi.

 

Mencairnya salju di Greenland memberi pengaruh yang sangat besar terhadap luas lapisan es yang terus berkurang dan terhadap tinggi dan dalam lautan diseluruh dunia. Sebagian air yang dihasilkan dari salju yang mencair juga akan mengalir kedalam glacier melalui patahan-patahan dan alur lubang vertikal (moulin), kemudian mencapai lapisan batuan dibawahnya dan melubrikasi (meminyaki, mencairkan) lapisan es diatasnya.

Pengamatan dan studi yang dilakukan sebelumnya oleh Jay Zwally dan Waleed Abdalati dari NASA Goddard menunjukkan, air yang mencair pada musim panas pada dasar lapisan es bisa meningkatkan gerak es dan menyebabkan terjadinya peningkatan level lautan (tinggi dan dalamnya) dengan sangat cepat. Fenomena ini akan mempercepat terjadinya pemanasan global.

Advanced Servlet

Pada pembahasan ini, meliputi beberapa topik tentang Advanced Servlet (servlet lanjutan) :
● Pengalihan respon
● Peran objects
● Sessions dan session tracking
● Filters

3.1. Pengalihan Respon
Ada beberapa kasus ketika kita ingin servlet kita hanya menjalankan beberapa proses inisialisasi dan meninggalkan isi turunan dari beberapa entity asli yang lain.
Mari membuat skenario dimana kita mengambil beberapa nilai dari user dan menyajikannya dengan beberapa tampilan yang mungkin berdasarkan pada nilai tersebut. Mari mengatakan bahwa kita mempunyai sebuah tempatnya, setelah memproses login user, akan menampilkannya dengan halaman yang berbeda tergantung pada peran user pada sistem tersebut. Menempatkan isi kode turunan untuk semua halaman ke satu servlet mungkin membuat servlet kita terlalu tidak teratur. Pada kasus ini, akan menjadi lebih baik untuk servlet untuk memindahkan output turunan.
Ada dua method yang dapat dipakai oleh pengembang untuk melakukan pemindahan ini. Satu adalah menyelesaikan penggunaan dari sebuah object RequestDispatcher, yang lain adalah dengan menggunakan method sendRedirect() yang dapat ditemukan dalam object HttpServletResponse.
Advanced Servlets 1

3.1.1 RequestDispatcher
Kita mencapai sebuah instance dari object RequestDispatcher dengan menjalankan method selanjutnya yang mana dapat ditemukan dalam object HttpServletRequest :

public RequestDispatcher getRequestDispatcher(String path)

Parameter string yang diambil dalam method ini adalah lokasi dari HTML, JSP, atau servlet yang ingin kita hubungkan dengan request. Sekali kita mempunyai sebuah pengontrol pada sebuah instance dari object RequestDispatcher , Kita memiliki pilihan untuk menjalankan satu dari dua method :

● public void include(ServletRequest req, ServletResponse res)
● public void forward(ServletRequest req, ServletResponse res)

Kedua method diatas mengambil isi yang dihasilkan oleh lokasi khusus dan membuatnya sebuah bagian dari respon servlet ke user. Perbedaan utama diantara mereka adalah perintah forward membuat target entity dengan satu-satunya tanggung jawab untuk mengeluarkan respon, sementara perintah include hanya menggabungkan isi dari target. Menggunakan perintah include, kita dapat menambahkan isi lain ke respon, mungkin memasukkan even target yang lain.

Dibawah ini adalah beberapa contoh kode memanfaatkan kedua perintah yaitu include dan forward :

public DispatchServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(”text/html”);
PrintWriter out = response.getWriter();
out.println(”Error occurred during login request processing”);
RequestDispatcher rd = request.getRequestDispatcher(”/login.html”);
rd.include(request, response);
}
}
public DispatchServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(”text/html”);
PrintWriter out = response.getWriter();
out.println(”Error occurred during login request processing”);
RequestDispatcher rd = request.getRequestDispatcher(”/login.html”);
rd.forward(request, response);
}
}

<H1>Login Page</H1>
<form action=”DispatchServlet”>
User name : <input type=”text” name=”loginName”><br/>
Password : <input type=”password” name=”password”><br/>
<input type=”submit”/>
</form>

Kesamaan secara virtual, dengan hanya membedakan method yang dijalankan pada permintaan object dispatcher. Ini akan menyajikan penanda perbedaan diantara keduanya. Dibawah ini adalah keluaran program tersebut.

Kode yang diberikan sama secara virtual, tetapi kita memiliki dua output yang berbeda. Menggunakan method include, pesan String yang kita keluarkan ke user lebih dahulu untuk memanggil method yang ditampilkan. Ini bukan kasus untuk output dari method forward : pesan yang kita tambahkan pada respon lebih dahulu untuk memanggil method bukan merupakan bagian dari output.
Dengan method forward, semua isi dalam response buffer dibersihkan lebih dahulu untuk memanggil method, Setelah respon tertentu di commit; Tidak ada isi yang dapat ditambahkan lebih lanjut. Dengan method include, semua isi ditempatkan dalam response buffer yang tersimpan sebelum dan sesudah memanggil method.

Menggunakan method include, sangat mungkin untuk servlet kita untuk membawakan sebagai keseluruhan output dari beberapa sumber yang berbeda. Yang juga memungkinkan untuk menambahkan pesan ke isi yang sifatnya static dan sebaliknya. Perhatikan contoh berikut ini :

public LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher rd = null;

String loginName = request.getParameter(”loginName”);
String password = request.getParameter(”password”);

User user = null;
UserService service = new UserService();
user = service.authenticateUser(loginName, password);
if (user == null) {
response.setContentType(”text/html”);
PrintWriter out = response.getWriter();
out.println(”User does not exist with given login and/or password”);

rd = request.getRequestDispatcher(”/login.html”);
rd.include(request, response);
out.close();
} else {
HttpSession session = request.getSession();
session.setAttribute(ApplicationConstants.USER_OBJECT, user);

rd = request.getRequestDispatcher(”/header.html”);
rd.include(request, response);

rd = request.getRequestDispatcher(”/mainContent.html”);
rd.include(request, response);

rd = request.getRequestDispatcher(”/footer.html”);
rd.include(request, response);
}
}
Disini, kita menggunakan method include untuk menampilkan beberapa halaman HTML yang berbeda(header.html, mainContent.html, footer.html) Untuk user sebagai satu yang mewakili keseluruhan user. Juga, sebuah pesan error akan ditampilkan jika user gagal dalam melakukan validasi disisi server.

Send Redirect
Di sisi lain dari pengalihan output ke suatu entity diluar servlet adalah method sendRedirect. Ini akan memiliki tanda method sebagai berikut :

public void sendRedirect(String relativePath)

Dan dapat ditemukan dalam object HttpServletResponse. Parameter yang diambil adalah sebuah String mewakili path untuk target yang kita inginkan untuk pengalihan user. Memanggil method ini secara efektif memerintahkan browser untuk mengirim dalam HTTP request yang lain ke tujuan tertentu.

Ini membuat target satu-satunya entity yang bertanggungjawab untuk meng generate isi, sama dengan sebuah cara untuk hasil dengan menggunakan method forward dalam object RequestDispatcher yang telah didiskusikan sebelumnya. Bagaimanapun, permintaan dikirim kembali untuk menampilkan beberapa perbedaan secara praktek dibandingkan dengan method forward :

– alamat URL pada browser bar mencerminkan target yang ditentukan. Ini membuat penggunaan method sendRedirect tidak digunakan jika kita tidak mengingatkan tentang kesadaran user terhadap fungsi pengalihan.

– Sejak ini menjadi sebuah request baru secara efektif, data tersimpan dalam object request yang sebelumnya tidak tersimpan. Disediakan parameter-parameter untuk user, jika ada banyak, harus di submit kembali jika kita ingin target kita sadar terhadap prosedur tersebut. Biasanya data tersimpan dalam object request harus juga dipelihara dengan beberapa cara, jika tidak data-data tersebut akan hilang.

Disarankan ketika method include digunakan untuk memungkinkan banyak output source, method forward digunakan jika pengalihan ke sebuah komponen yang menghasilkan isi yang dinamis (servlets atau JSPs yang akan kita diskusikan kemudian), dan method sendRedirect digunakan ketika mengalihkan ke isi yang static.

3.2 PEMBATASAN OBJECT-OBJECT
Spesifikasi servlet memungkinkan kita untuk melakukan empat bidang dimana untuk menempatkan data, agar komponen-komponen kita dapat digunakan bersama. Untuk meningkatkan spesifikasinya :

● Halaman-halaman menyangkut suatu bidang didefinisikan menjadi bidang meliputi sebuah halaman JSP tunggal. Variabel-variabel dideklarasikan dalam halaman yang sifatnya dapat dilihat hanya dalam halaman tersebut dan dan tidak akan nampak sekalipun jika servis halaman berakhir. Object yang tergabung dengan bidang ini adalah object PageContext.
● Pembatasan Request – Request didefinisikan menjadi bidang yang meliputi sebuah client dengan request tunggal. Data yang tersimpan dalam bidang ini sifatnya dapat dilihat oleh semua komponen web mengatur request dari client. Setelah request client telah selesai – Kemudian client menerima sebuah respon HTTP dan menutup koneksi ke server – semua data tersimpan dalam bidang ini tidak lagi terlihat. Advanced Servlets 5

3.2.1 Menyimpan dan mendapatkan kembali data dari suatu bidang
Semua dari object bidang seperti yang disebutkan diatas terdiri dari perintah method untuk bisa mendapatkan kembali dan menyimpan data didalamnya. Untuk menyimpan data gunakan method.

Public void setattribute(string key, object value);
parameter String yang diambil method ini akan menyimpan object dibawah nilai tersebut. Untuk mendapatkan data kemudian, lewati key yang sama seperti parameter.

Public Object getattribute(String key);
Jika tidak ada object yang bisa mendapatkan kembali dari key yang diberikan, niali null dikembalikan oleh method. Juga, sejak return type adalah Object, itu akan membuat pengembang untuk memilih Object ke class yang sesuai dan menampilan pengujian type.
Untuk menghapus sebuah attribut dari object bidang secara sederhana panggil method removeAttribute() dan lalui kunci attribut seperti parameternya.

3.3 Session Tracking Dan Pengaturan
Kita harus memanggil kembali HTTP yang didesain sebagai bagian yang terhubung, protocol yang tidak memiliki state. Ketika browser mengirim request ke server, koneksi dibuka, mengirimnya melalui HTTP request, menggunakan respon HTTP, dan kemudian menutup koneksi. Sejak setiap request browser terkirim secara efektif dalam koneksi berbeda tiap waktunya, dan server tidak berhubungan dan memperbaiki secara langsung, secara tidak sadar client mengaksesnya, masalahnya ditunjukkan melalui aplikasi web : bagaimana memperbaiki langkah untuk bagian transaksi web user?
Solusi untuk masalah ini adalah server dalam memperbaiki konsep “user session”. Sementara dalam sebuah session, server akan dapat mengenal client diantara banyak request. Secara tidak sadar,kini server dapat memperbaiki state untuk client.
Untuk setiap session agar tetap ada, browser client harus dapat mengirim data ke sisi server dari standard HTTP request-nya. Data ini memungkinkan server untuk mengenali user yang mana yang melakukan reques, dan memperbaiki sesuai dengan statenya. Ada tiga tipe solusi untuk masalah ini : cookies, penulisan kembali alamat URL, dan form fields yang tersembunyi.

3.3.1 Cookies
Cookies adalah struktur data kecil yang digunakan oleh web server untuk mengirim data ke browser client. Data ini disimpan oleh browser, dan dalam beberapa kondisi browser mengembalikan data tersebut kembali ke web server.
Menggunakan cookies, servlets dapat menyimpan “session ids” yang dapat digunakan untuk mengenali user sebagai bagian yang ikut serta dalam bagian session. Setelah ID diproses, disimpan dalam object cookie dan mengirim kembali ke browser client untuk penyimpanan. Object cookie ini kemudian dapat ditangkap kembali dalam object request setiap waktu untuk mengetahui jika user ada dalam session.

Dibawah ini adalah contoh dari bagaimana untuk mengunakan cookies untuk session tracking dalam servlets :

String sessionID = generateSessionID();

HashMap map = new HashMap();

HashMap containerMap = retrieveSessionMaps();

containerMap.put(sessionID, map);

Cookie sessionCookie = new Cookie(”JSESSIONID”, sessionID);

response.addCookie(sessionCookie);
..
Untuk bisa mendapatkan gambaran yang benar mengenai data session, servlet kemudian mendapatkan cookie yang berisi session ID, dan menggunakannya sebagai key, mencapai HashMap yang sesuai.
Sementara cookies merupakan solusi yang baik untuk session tracking, penggunaannya memerlukan pengembang untuk mengatur banyak detail :
• Membangkitkan session id yang spesifik untuk setiap user.
• Mendapatkan cookie yang sesuai dari browser yang berisi session ID.
• Mengatur waktu yang terpakai sesuai dengan kebutuhan cookie.
Sesuai dengan isi detail diatas, masalah dengan penggunaan cookie dari beberapa user yang browsernya tidak support dengan cookie berkenan dengan keperluan keamanan. Pendekatan alternatif mutlak diperlukan.

3.3.2 Penulisan kembali alamat URL
Pada pendekatan ini, browser client menambahkan sebuah session ID yang spesifik pada akhir setiap request yang dibuat untuk server. Session ID ini dapat dibaca, dan informasi user yang sesuai bisa didapatkan.
Ini adalah solusi lain yang cukup baik, dan satu dari pekerjaan tersebut jika user me non aktifkan pengunaan cookies. Bagaimanapun, ini mengenalkan masalah yang dihadapi untuk meyakinkan bahwa setiap URL yang digunakan oleh client pada bagian atas halaman site memiliki session ID yang ditambahkan didalamnya.

3.3.3 Form fields tersembunyi
Pada pendekatan ini, form field tersembunyi dikenalkan dalam bentuk HTML, dengan nilai yang diset untuk bagian session ID. Bagaimanapun, method ini sangat terbatas berhubungan dengan fakta bahwa ini hanya dapat digunakan ketika ada form di halaman yang digunakan client.

3.3.4 Session Tracking dalam Servlets
Spesifikasi servlet menyediakan sebuah API tingkat tinggi untuk menyediakan access untuk session tracking : API HttpSession. Menggunakan API ini, pengembang tidak lagi perlu khawatir tentang banyak detail yang disebutkan seperti yang telah disebut diatas : pengenalan session ID , manipulasi detail cookie, dan informasi mengenai detail diringkas oleh pengembang. Juga, pengembang menyediakan lokasi yang sesuai untuk menyimpan data untuk session user. Penggunaan API HttpSession yang benar juga memungkinkan aplikasi Anda untuk secara otomatis beralih ke metod URL-rewriting jika dideteksi adanya support cookie di browser client di non aktifkan.

3.3.5 Mendapatkan sebuah instance dari object HttpSession
Object HttpSession mewakili data session yang tergabung untuk diberikan request client dapat dicapai dengan memanggil method getSession() dalam object HttpServletRequest . Container kemudian bertanggung jawab untuk membaca data dari client (salah satu dari cookies atau dari URL-rewriting), dan membuat instance dari object HttpSession.
Dengan melewatkan sebuah nilai boolean ke method getSession()(misal, getSession(true) ) kita dapat membatasi ke server jika object HttpSession yang baru harus dibuat secara otomatis dalam kasus user tidak berperan langsung dalam beberapa session.

3.3.6 Menyimpan dan mendapatkan data dalam sebuah session
Dengan HttpSession API, pengembang tidak perlu mengatur object secara eksplisit untuk menyimpan data yang diperlukan untuk diperbaiki dalam user session. Semua yang diperlukan adalah untuk memanggil salah satu dari kedua method berikut :
• public void setAttribute(String key, Object value)
• public Object getAttribute(String key)
Advanced Servlets 10

3.3.7 Menghapus data yang tersimpan session
Untuk menghapus data yang berada pada batasan session, panggil method removeAttribute(), dan lewatkan sebagai parameter key String yang tergabung dengan data.

3.3.8 Terminasi session
Sessions secara otomatis diterminasi setelah didefinisikan awal interval terbesarnya. Interval ini dapat ditemukan dan dimanipulasi dalam application’s deployment descriptor.
deployment descriptor untuk contoh FirstServlet dicetak kembali disini untuk memanggil kembali :

</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>

Nilai 30 dalam elemen session-timeout mengatakan ke server untuk menunggu suatu periode inactive akhir selama 30 menit sebelum melakukan terminasi session. Pada point ini semua object ditempatkan dalam batasan session akan dihapus dari batasan, dan object HttpSession menjadi invalid.
Pengembang dapat melkukan terminasi session melalui program dengan memanggil method invalidate().

3.3.9 Melakukan URL-Rewriting
Secara default, HttpSession API membuat dan mengunakan cookies untuk track sessions. Bagaimanapun, kita harus mengembangkan aplikasi web kita hingga dapat bekerja sama baiknya pada browser yang tidak mendukung cookies dengan menambahkan support untuk URL rewriting.
Kita dapat menambahkan support URL rewriting dengan menggunakan method encodeURL() yang dapat ditemukan dalam object HttpServletResponse. Method ini mengambil dalam sebuah String yang mewakili sebuah path atau alamat URL sebagai parameternya. Kemudian dia dapat mengenali jika cookie support diaktifkan pada browser target. Jika dia diaktifkan, dia akan mengembalikan memberikan String sepertinya.jika cookies di non aktifkan, dia mengaktifkan URL rewriting dengan menambahkan session ID ke URL yang diberikan.

Berikut ini adalah contoh tentang bagaimana untuk menggunakan method encodeURL.

String encodedURL = response.encodeURL(”/welcome.jsp”);
out.println(”<A HREF=’” + encodedURL + “‘>Click here to continue</A>”);

Untuk menyediakan fungsi URL rewriting pada aplikasi kita kemudian , kita harus memindahkan semua URL melewatkannya sebagai link ke user dengan suatu pengkodean kembali dengan menjalankan method encodeURL. Path dilewatkan melalui method sendRedirect yang telah kita diskusikan sebelumnya. Juga harus dikodekan kembali, sekarang menggunakan hasil dari method encodeRedirectURL().

3.4 Filters
Filters adalah komponen web lanjutan yang dikenal sejak spesifikasi Serlvet 2.3. Pada dasarnya, komponen mereka yang berdiri diantara request client dan bagian sumber – beberapa telah mencoba untuk mendapat target sumber untuk menjalankan filter. Isi Sumber dapat menjadi static atau dynamic source (HTML, JSP, GIF, …)
Filters bekerja dengan menangkap request client dan tetap ada sebagai bagian dari rantai; berikut ini, pendefinisian dari filter yang requestnya dilewatkan berjalan sebelum benar-benar tiba di sumber target. Ketika request melewati filter, filter menjalankan proses tersebut dan kemudian dapat memutuskan apakah request dapat dilewatkan pada proses filter selanjutnya pada urutan tersebut (jika filter tersebut adalah filter terakhir pada urutan, request dilewatkan pada sumber target), atau untuk melintasi rantai siklus sepenuhnya, menolak acces user ke sumber.

CLIENT

CONTAINER

Gambar diatas adalah representasi grafis tentang bagaimana request melewatkan beberapa tahap filter sebelum benar-benar tiba pada titik akhir target.
Filter adalah komponen yang dapat dipakai sejak ia menawarkan kemudahan untuk pengembang yaitu cara mudah untuk menambahkan proses sebelum sumber didalam aplikasi web diakses. Ini adalah macam-macam kegunaan yang mungkin dengan menggunakan servlet dan pengalihan respon. Ini lebih sulit untuk implementasi berlanjut, dan mensyaratkan setiap servlet pada tingkat yang lebih tinggi sadar akan lokasi servlet selanjutnya dalam urutan. Filter tidak memiliki pembatasan; ini pembangun servlet yang mengatur urutan komponen yang dipanggil sebelumnya request pernah mencapai titik akhir, dan bukan pengembangnya.

3.4.1 Membuat sebuah Filter
Untuk membuat sebuah filter, pengembang harus membuat sebuah class yang mengimplementasikan interface javax.servlet.Filter. Interface ini mendefinisikan method-method berikut ini :

• void init(FilterConfig config) melempar ServletException – method ini dipanggil oleh servlet container awalnya ini akan mengirim filter ke memory. Inisialisasi kode harus ditempatkan disini, termasuk kode yang mengumpulkan inisialisasi parameter yang terletak dalam web.xml sepanjang penggunaan object FilterConfig yang diberikan.

• void destroy – Method ini dipanggil oleh container ketika filter diambil dari memory. Ini selalu dilakukan ketika aplikasi dimatikan. Kode yang menghentikan beberapa sumber dibuat dengan filter yang harus dikerjakan disini.

• void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) melempar IOException, ServletException – method ini berisi semua kegunaan dari class filter. Ini dipanggil oleh servlet container ketika server mengenali bahwa filter diharuskan untuk digunakan untuk menangkap respon dari sebagian user.

Parameter-parameter yang terlewatkan pada method ini adalah instances dari object ServletRequest, ServletResponse, dan FilterChain. Jika Filter ini berpartisipasi dalam sebuah lingkungan web (seperti kasus yang biasa terjadi) pengembang dapat memilih object permintaan dan respon untuk instances dari HttpServletRequest dan HttpServletResponse, masing-masing, jadi mereka bisa mendapatkan informasi HTTP-tertentu.

Seperti servlet, container akan menciptakan hanya satu instance dari sebuah object Filter dan menggunakan multi-threading untuk memungkinkan pengaturan beberapa request client secara bersama-sama. Ini berarti bahwa method ini HARUS didefinsikan menjadi thread-safe.

3.4.2 Rantai Filter
Rantai filter memungkinkan filter ditampilkan pada urutan yang benar untuk sebagian sumber, dan diwakili oleh suatu object FilterChain. Kemampuan suatu filter untuk menjadi satu silklus berbentuk rantai tersendiri. Sebaliknya Filter memiliki kegunaan yang sama seperti Servlet.
Rantai filter memungkinkan pembersihan secara terpisah diantara tingkat pemrosesan yang berbeda : misalkan, sebagai contoh, fungsi baru yang perlu diimplementasikan sebelum request diproses, ini dapat dibuat dengan sederhana sebagai filter. Pertama-tama filterdikonfigurasi, Filter hanya ditambahkan ke pelayanan komponen terhadap request sebelum titik akhir dapat dicapai, ia tidak menyerahkan sepenuhnya beberapa proses yang dilakukan sebelumnya kecuali jika secara explisit ditulis untuk melakukan hal yang sama dapat dilakukan oleh pengembang.

Object FilterChain mewakili urutan dari filter yang akan dipanggil sebelum pada akhirnya mencapai titik akhir. Method ini hanya memerlukan object tertentu yaitu ServletRequest dan ServletResponse sebagai parameter.

Dibawah ini adalah sebuah filter yang menyediakan logging dasar untuk aktifitas pada aplikasi :

public LoggingFilter implements Filter {
private FilterConfig config;

public void init(FilterConfig config) {
this.config = config;
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws ServletException, IOException {

ServletContext context = config.getServletContext();

String logEntry = request.getServerName() + “:” + request.getServerPort();
logEntry += “/” + request.getContextPath() + “/” + request.getPathInfo();
logEntry += “–> accessed by the user on ” + new java.util.Date();

context.log(logEntry)
chain.doFilter(request, response);
}
}

3.4.3 Konfigurasi Filter

Konfigurasi Filter adalah sangat sama seperti yang diperlukan pada servlets. Ada bagian yang diperlukan untuk mendefinisikan setiap filter untuk digunakan dalam aplikasi, sama seperti bagian untuk mendefinisikan pola url-yang akan didengar oleh filter untuk ditangkap dan diproses lebih lanjut.
Sebuah contoh dari konfigurasi filter diberikan dibawah ini :

</context-param>
<filter>
<filter-name>LoggingFilter</filter-name>
<filter-class>jedi.filters.LoggingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoggingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Diberikan file web.xml yang sangat khusus tentang pemesanan dari elemen-elemen tertentu, Paling baik untuk meyakinkan bahwa masukan elemen filter didefinisikan sebelum beberapa servlet didefinisikan, tapi setelah ada beberapa masukan context-param. Juga, semua masukan filter-mapping harus diletakkan setelah beberapa definisi filter.
Secara default, Filters tidak digunakan terhadap komponen-komponen web (servlets, JSP yang lain) inilah target dari pemanggilan include atau forward dari sebuah object RequestDispatcher. Mereka dipakai hanya untuk request yang dibuat secara langsung oleh client.

*Welcome*

Selamat datang di web-blog saya, semoga berguana untuk kita semua, jangan lupa isi comment pada setiap artikelnya dan terima kasih banyak atas kunjungannya.

Salam

DhayReddle