Ane sedikit penasaran dengan yang namanya php dan asp
.net, iseng dah barusan ane cari cari sumber buat muasin rasa penasaran ane
yang bejibun ini… seperti biasa hal yang pertama ane lakukan untuk mencari
sesuatu yang menurut ane “unknown” ane buka wikipedia sang enslikopedia
“lengkap”, setelah ane buka eh malah cuman disuguhin hal yang minim tentang php
dan beralih lah ane ke si mbah gugle, and walah,, ane nemu satu artikel yang
singkat padat jelas dan yang pasti bisa menuhin rasa penasaran ane selama ini,
so apa salahnya ane bagi disini,, ya kan??
So lets cek this out....
Bagi para webmaster yang baru belajar saya hanya ingin
menjelaskan sedikit yang saya dapatkan untuk pertanyaan yang selalu ditanya apa
sih perbedaan PHP dengan ASP..
Bagi orang awam tentang pemprograman website PHP dan ASP
menurut mereka tidak jauh bedanya, malah ada yang mengatakan ASP itu adalah
Bahasa Pemrprogram dari PHP…berikut saya jelaskan perbedaan dari ASP dan
PHP…???
ASP dan PHP merupakan bahasa
pemrograman yang biasa digunakan untuk membuat website. Tidak seperti halaman
web HTML biasa, ASP dan PHP lebih dinamis dan mampu membuat para user bisa
berinteraksi dan bertukar informasi dengan database website.
ASP merupakan kependekan dari Active Server Pages, suatu
jenis program yang bekerja dalam Microsoft (Windows) melalui IIS (Internet
Information Server). ASP memerlukan server Microsoft untuk menjalankan website.
Sedangkan program PHP atau Hypertext Preprocessor berjalan di server Linux atau
Unix. PHP yang lebih baru bisa berjalan di server NT.
Program PHP juga bisa berjalan di Windows, Solaris, Unix dan
Linux sedangkan ASP hanya bisa berjalan di server dengan platform Windows.
Baru-baru ini saja, ASP bisa berjalan pada platform Linux yang hanya ada bila
sudah terinstall ASP-Apache di servernya.
Jika Anda seorang programmer mahir dengan bahasa C++, Anda
mungkin akan lebih nyaman menggunakan PHP daripada ASP. PHP menggunakan C/C++
sebagai bahasa pemrograman dasar dan kebanyakan syntax-nya serupa antara yang
satu dengan yang lain. Karena
sebagian besar programmer masih menggunakan bahasa C++, PHP menjadi lebih
populer dibanding dengan ASP.
ASP lebih banyak mirip dengan syntax dan interface-nya
pemrograman Visual Basic. Hal itu dikarenakan pada dasarnya Visual Basic adalah
berkorelasi dengan produk dan program-program buatan Microsoft. Jadi jika Anda
seorang programmer, pemilihan antara ASP dan PHP sebenarnya didasarkan pada
bahasa pemrograman mana yang paling Anda kuasai.
Jika dibandingkan dari segi biaya dan kemahalannya, program
ASP membutuhkan Windows dengan IIS terinstall di servernya. Anda harus membeli
kedua komponen tersebut agar ASP bisa berjalan. Sebaliknya, PHP hanya akan
membutuhkan sebuah server Linux yang bisa Anda dapatkan secara cuma-cuma.
PHP sangatlah fleksibel ketika dikoneksikan dengan database.
PHP bisa terkoneksi dengan beberapa database dimana yang sebagian besar
digunakan adalah MySQL. Harap dicatat bahwa MySQL tidak akan membebani Anda
sesen rupiah pun. Tapi bila Anda ingin memakai ASP, Anda perlu untuk membeli
MS-SQL, produknya Microsoft.
Kecepatan me-load adalah faktor besar dalam memelihara
website. Jika Anda sangat selektif soal kecepatan, Anda mungkin lebih
membutuhkan PHP. Pada dasarnya kode PHP berjalan lebih cepat daripada ASP
karena berjalan di space-nya sendiri sedangkan ASP menggunakan sebuah tambahan
server dan menggunakan arsitektur berbasis COM.
Dalam bekerja dengan PHP, kebanyakan tools terasosiasi
dengan program yang kebanyakan berupa open source software, jadi Anda tidak
perlu membayar untuk mendapatkan tool tersebut. Tidak seperti ASP yang mungkin
mengharuskan kita untuk membeli tool tambahan untuk bekerja dengan program ini.
Kesimpulannya: Baik PHP dan ASP mempunyai keuntungan
dan kerugian. Pada dasarnya semua bergantung pada bagian pengembangan website
mana yang akan Anda pilih. Apakah Anda mencemaskan biaya dari pembuatan website
Anda? Apakah anda ingin menggunakan bahasa pemrograman yang familiar dengan
Anda? Apakah Anda menginginkan website yang lebih stabil dan cepat? Pemilihan
antara ASP dan PHP pada dasarnya tergantung pada preferensi Anda sendiri.
Sebaiknya Anda berunding dengan programer atau webmaster lainnya dan cari
sebanyak mungkin informasi mengenai kode pemrograman mana yang paling pas
dengan website Anda.
so � a > ��� ��� Need Authentication
Mungkin ada yang bingung sebenarnya untuk apa sih otentikasi
server itu? Bukankah kalau kita buka yahoo.com, pasti yang menjawab adalah
servernya yahoo, bukan servernya google. Kan tidak mungkin bisa tertukar begitu.
Benarkah tidak mungkin tertukar?
Ketika kita mengakses situs, yang kita tulis di address bar
browser biasanya adalah domain name, misalkan yahoo.com. Selanjutnya browser
akan meminta DNS untuk menerjemahkan yahoo.com menjadi IP address. Baru kemudian
browser bisa berkomunikasi dengan server.
Nah, proses pengubahan dari domain name ke IP address ini
yang menjadi celah yang memungkinkan seseorang tersesat ke server yang salah.
Dengan teknik ARP poisoning, DNS cache poisoning, atau proses routing yang sengaja
disesatkan, seseorang bisa saja bukan mengakses server yang benar.
Untuk itulah kita perlu Authentication.
Authentication: Who are you speaking with.
Mari kita bahas bagaimana https menjamin authentication.
Sebelum berkomunikasi dengan server, browser mensyaratkan server untuk
meng-otentikasi dirinya, menunjukkan bukti identitasnya. Bukti identitas ini
berbentu sertifikat yang ditanda-tangani (digital signature) oleh penjamin yang
disebut
Certificate Authority, mirip dengan ilustrasi Dedy sebagai penjamin
Bob di atas. Dalam sertifikat tersebut tertera antara lain: nama perusahaan,
alamat web, dan kunci publik.
Ketika browse menghubungi server, untuk menunjukkan
identitas dan memberikan kunci publiknya, server akan mengirimkan
sertifikatnya. Kemudian browser akan memverifikasi apakah sertifikat itu
ditanda-tangani oleh penjamin (CA) yang trusted (browser memiliki daftar
trusted CA). Jika tanda tangan digital CA pada sertifikat itu valid, maka
dijamin sertifikat itu benar dibuat oleh CA. Selain itu browse juga akan
memeriksa tanggal expired sertifikatnya dan membandingkan alamat web yang ada
di sertifikat dengan server yang sedang dihubungi. Jika semuanya valid, browser
akan mengambil kunci publik server yang tertera pada sertifikat.
Oke, dari sertifikat yang kamu beri, saya dapat kunci publik
ini. Kalau kamu punya pasangan kuncinya (private key), berarti kamu benar-benar
server yang disebut di sertifikat ini.
Dengan kunci publik server di tangan, browser akan mencoba
melakukan komunikasi dengan mengirimkan pesan ter-enkripsi. Bila server bisa
menjawab pesan ini, maka server itu pasti punya kunci private, dengan kata lain
serve itu pasti benar-benar pemilik kunci publik yang tertera di sertifikat.
Dengan cara ini browser akan yakin sedang terhubung dengan
server yang benar.
Confidentiality: Is Someone Listening to Your
Conversation?
https layer stack
Sebenarnya https bukanlah satu protokol, tapi kumpulan
protokol (dalam hal ini saja banyak yang salah paham) yang diberi nama HTTPS.
Kumpulan protokol yang membentuk https adalah http yang ditumpangkan di atas
SSL (Secure Socket Layer) atau TLS (Transport Layer Security). Jadi kalau dalam
layer posisinya dari bawah ke atas adalah TCP -> SSL/TLS -> HTTP. SSL dan
TLS adalah protokol yang secure dalam artian seluruh data yang dikirim dan
diterima dalam keadaan ter-enkrip. Sedangkan http adalah protokol yang tidak
secure karena datanya telanjang. Perkawinan antara http dan (SSL atau TLS)
menghasilkan keturunan yang lebih unggul dari kedua orang tuanya, yang disebut
https.
Mari kita lihat interaksi yang terjadi antar protokol
tersebut. Bayangkan anda sedang membuka halaman https, dan browser anda sudah
terhubung dengan web server dalam mode secure (biasanya muncul tanda gembok di
status bar). Ketika anda meng-klik sebuah link, yang terjadi adalah browser
mengirimkan request GET dalam protokol HTTP (tidak ter-enkrip). Request
GET ini diserahkan pada layer SSL/TLS untuk di-enkrip. Hasil enkripsi request
GET ini kemudian diserahkan pada layer TCP untuk dikirim ke tujuan (server
web).
Ketika request GET yang ter-enkrip ini sampai di tempat
tujuan (server web). Pertama paket akan di-handle oleh layer TCP. Kemudian
paket itu diserahkan pada layer SSL/TLS untuk di-dekrip. Hasilnya adalah paket
dalam format HTTP tidak ter-enkrip. Baru kemudian paket HTTP ini diserahkan
pada yang berhak, yaitu server web (misal:Apache). Setelah Apache selesai
menjawab, dia akan mengirimkan balasan request GET tersebut dalam bentuk paket
HTTP. Paket ini akan di-enkrip dulu oleh layer SSL/TLS sebelum diserahkan pada
layer TCP dan dikirim ke client (browser yang mengirimkan request GET semula).
SSL menjamin kerahasiaan komunikasi end-to-end, artinya
mulai dari ujung server hingga ujung client. Tidak ada satu pun server atau
komputer yang menjadi perantara antara client hingga server bisa membaca
isinya.
Kombinasi Symmetric dan Asymmetric Cryptography
Dalam https komunikasi yang terjadi semua ter-enkripsi.
Seperti yang sudah saya jelaskan di awal, masing-masing jenis enkripsi memiliki
keunggulan dan kelemahan. Keunggulan kriptografi simetris adalah kecepatannya
yang tinggi. Sedangkan keunggulan kriptografi asimetris adalah kemudahan dalam
pertukaran kunci.
Oleh karena itu https memadukan kedua jenis enkripsi ini.
Pada tahap awal komunikasi, client dan server berkomunikasi dengan menggunakan
kriptografi asimetris. Enkripsi ini hanya ditujukan untuk menyepakati dan
saling bertukar kunci rahasia yang akan dipakai dengan kriptografi simetris.
Jadi pertukaran kunci rahasia dilakukan dalam keadaan ter-enkrip dengan
kriptografi asimetris.
Setelah kedua pihak memegang kunci rahasia yang sama,
komunikasi selanjutnya dilakukan dengan kriptografi simetris karena lebih murah
dan cepat.
Apa yang Tidak Dijamin HTTPS ?
SSL hanya menjamin authentication dan confidentiality saja.
Padahal masih banyak attack yang mengancam aplikasi web, antara lain SQL
Injection, XSS, CSRF, Denial of Service, Brute-Force-Attack.
Ya benar, semua serangan terhadap aplikasi web selain
sniffing dan mitm bisa dilakukan tanpa hambatan.
Selain itu kerahasiaan data hanya berlaku di perjalanan
antara client hingga server. Sedangkan di dalam komputer client atau server itu
sendiri, data memungkinkan untuk disadap dengan penyadapan di level sistem
operasi.
Hebatnya lagi, karena komunikasi antara client dan server
ter-enkrip, maka IDS (Intrusion Detection System) tidak berguna. IDS bekerja
dengan cara meng-inspeksi paket yang masuk (persis seperti sniffer). Bila paket
mengandung pattern yang mencurigakan, maka IDS akan membunyikan alarm. Bila
komunikasi antara client dan server ter-enkrip, maka IDS tidak bisa melihat isi
paket, apakah mengandung pattern yang berbahaya atau tidak.
source Plagiarist