Monday, April 27, 2009

POPUP LOOPING

POPUP LOOPING dapat menyebabkan resource kita habis karena browser terus membuka halaman baru yang sama. Tetapi pada web browser saat ini, hal ini sudah diantisipasi dengan membatasi jumlah popup yang dapat dilakukan. Misalnya pada firefox, secara default popup_maximum diset sebanyak 20. Setting ini dapat dilihat dengan menuliskan "about:config" pada bagian URL address dengan nama dom.popup_maximum. Jumlah popup maximum dapat dirubah dengan mengklik dua kali pada bagian tersebut.



Cara membuat popup looping sangatlah mudah, yaitu hanya dengan menggunakan javascript saja dengan memanggil fungsi popup setiap website di load, dimana website tujuannya adalah web itu sendiri, seperti yang ditunjukkan pada contoh dibawah ini.
<html>
<head>
<script type="text/javascript">
function load()
{
window.open("coba.html");
}
</script>
</head>
<body onload="load()">
<h1> POPUP LOOPING </h1>
</body>
</html>

Pada tag html diatas ditunjukkan bahwa fungsi javascript di-load pada bagian body sehingga setiap kali web dibuka dan me-load body maka akan terbuka halaman baru. Script popup yang digunakan pada tag html di atas adalah
window.open("coba.html");

yang diletakkan pada fungsi
function load()

sehingga fungsi load tersebut dapat ditulis sebagai berikut
function load()
{
window.open("coba.html");
}

Cara me-load-nya adalah dengan menambahkan tag onload pada bagian body seperti yang ditunjukkan di atas.
<body onload="load()">

Tag html di atas jika dibuka akan terus menerus membuka webpage coba.html.

Server Website www.kpu.go.id

Untuk mengetahui web server dari suatu web dapat dilakukan dengan menggunakan telnet. Seperti ditunjukkan dibawah ini:

Hasil telnet www.kpu.go.id

$ telnet www.kpu.go.id 80
Trying 203.130.201.130...
Connected to kpu.go.id.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 200 OK
Server: nginx/0.6.35
Date: Fri, 17 Apr 2009 04:01:27 GMT
Content-Type: text/html
Connection: close
X-Powered-By: PHP/5.2.6
Set-Cookie: e57a7c521c783ad66f8ca4a523c09ad3=-; path=/
Set-Cookie: mosvisitor=1
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Fri, 17 Apr 2009 04:01:27 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache

Dari hasil telnet di atas dapat dilihat bahwa website www.kpu.go.id menggunakan webserver nginx (Engine-X) versi 0.6.35. 

Cara lain untuk mengetahui webserver bahkan OS dari server yang digunakan oleh website www.kpu.go.id adalah dengan menggunakan fasilitas yang disediakan oleh website www.netcraft.com, seperti yang ditunjukkan dibawah ini:



http://toolbar.netcraft.com/site_report?url=http://www.kpu.go.id

Dari website tersebut kita dapat melihat bahwa www.kpu.go.id menggunakan webserver nginx versi 0.6.35 dan menggunakan FreeBSD sebagai Sistem Operasi nya.

Tuesday, April 14, 2009

Attachment Email

Contoh bagian body dari raw email.

Content-Type: multipart/mixed; boundary=00504502d1759478c60467753d58

--00504502d1759478c60467753d58
Content-Type: multipart/alternative; boundary=00504502d1759478bd0467753d56

--00504502d1759478bd0467753d56
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Ini body email.

--00504502d1759478bd0467753d56
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Ini body email.

--00504502d1759478bd0467753d56--
--00504502d1759478c60467753d58
Content-Type: text/html; charset=US-ASCII; name="File kedua.html"
Content-Disposition: attachment; filename="File kedua.html"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fthlgr660

PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KICA8bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCI+CiAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TdHlsZS1UeXBlIiBjb250ZW50PSJ0ZXh0
L2NzcyI+CiAgPHRpdGxlPjwvdGl0bGU+CiAgPG1ldGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50
PSJDb2NvYSBIVE1MIFdyaXRlciI+CiAgPG1ldGEgbmFtZT0iQ29jb2FWZXJzaW9uIiBjb250ZW50
PSI5NDkuNDMiPgogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICBwLnAxIHttYXJnaW46IDAu
MHB4IDAuMHB4IDAuMHB4IDAuMHB4OyBmb250OiAxMi4wcHggSGVsdmV0aWNhfQogIDwvc3R5bGU+
CjwvaGVhZD4KPGJvZHk+CjxwIGNsYXNzPSJwMSI+SGFueWEgYXR0YWNobWVudCAyPC9wPgo8L2Jv
ZHk+CjwvaHRtbD4K
--00504502d1759478c60467753d58
Content-Type: text/html; charset=US-ASCII; name="File pertama.html"
Content-Disposition: attachment; filename="File pertama.html"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fthlgr681

PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KICA8bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCI+CiAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TdHlsZS1UeXBlIiBjb250ZW50PSJ0ZXh0
L2NzcyI+CiAgPHRpdGxlPjwvdGl0bGU+CiAgPG1ldGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50
PSJDb2NvYSBIVE1MIFdyaXRlciI+CiAgPG1ldGEgbmFtZT0iQ29jb2FWZXJzaW9uIiBjb250ZW50
PSI5NDkuNDMiPgogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICBwLnAxIHttYXJnaW46IDAu
MHB4IDAuMHB4IDAuMHB4IDAuMHB4OyBmb250OiAxMi4wcHggSGVsdmV0aWNhfQogIDwvc3R5bGU+
CjwvaGVhZD4KPGJvZHk+CjxwIGNsYXNzPSJwMSI+SGFueWEgYXR0YWNobWVudCAxPC9wPgo8L2Jv
ZHk+CjwvaHRtbD4K
--00504502d1759478c60467753d58--

Di atas merupakan bagian Attachment dari suatu email. Antara attachment satu dan attachment yang lain selalu dipisahkan oleh "MIME boundary". Tidak hanya attachment saja tetapi semua bagian dari email setelah "header email" dipisahkan oleh "MIME boundary". "MIME boundary" ini biasanya berupa kombinasi angka dan huruf yang random. Pada contoh di atas "MIME boundary" nya adalah "00504502d1759478c60467753d58".

Setiap "MIME boundary" akan dibuka dengan boundary yang dinyatakan pada "Content-Type"

Content-Type: multipart/mixed; boundary=00504502d1759478c60467753d58
lalu pada setiap bagian yang berbeda masing-masing akan dipisahkan oleh "MIME boundary" tersebut dengan format "--MIME boundary"
--00504502d1759478c60467753d58
dan pada bagian akhir dari pesan dimana tidak ada lagi yang dipisahkan oleh "MIME boundary" maka akan ditutup dengan "--MIME boundary--"
--00504502d1759478c60467753d58--
Pada setiap bagian setelah "--MIME boundary" akan didefinisikan "Content-Type" apa yang terdapat pada bagian tersebut dan jika pada bagian ATTACHMENT akan terdapat header sebagai berikut
Content-Type: text/html; charset=US-ASCII; name="File kedua.html"
Content-Disposition: attachment; filename="File kedua.html"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fthlgr660
dimana "Content-Type" merupakan tipe konten (jika yang di attachment file ppt maka Content-Type nya akan bukan text/html tetapi akan memberitahukan bahwa itu merupakan file ppt), "Content-Disposition" akan memberitahukan bahwa bagian ini merupakan attachment dan mempunya nama file "File kedua.html".

"Content-Transfer-Encoding" memberikan informasi encoding yang digunakan pada attachment dibawahnya (dibagian tersebut yang berada diantara "MIME boundary").

"X-Attachment-Id" merupakan id dari attachment yang berada dibawahnya.

Jawaban Stegano

Wah gampang banget ya stegano nya. :p Udah ketebak. jadi ga perlu ditulis jawabannya lagi.... Bener polanya 1-2-1-2 gitu terus :D. Jadi kata pertama huruf pertama kata kedua huruf kedua kata ketiga huruf pertama lagi, begitu seterusnya.

Terima kasih buat semuanya :D.