HTTPS, Aman di Jalan

Januari tahun ini, pas gw UAS mata kuliah Keamanan Komputer & jaringan, di lembar soalnya ada satu pertanyaan ini. Gw nggak inget bener gimana kata-kata di soal itu, sekarang udah lewat dua bulan dari waktu gw ngerjain soal itu kemarin. Pokoknya di soal itu kita ditanya & disuruh ngejelasin, apa protokol HTTPS bisa nyegah serangan XSS & SQL injection di website yang bersangkutan?

Kira-kira gimana jawabannya? Bisa atau nggak?

Jawabannya sih nggak bisa. Alesannya, karena HTTPS itu fungsinya cuma untuk enkripsi & dekripsi data yang ditransfer antara client & server. Serangan XSS & SQL injection bakal tetep jalan selama scriptnya bisa dijalanin di server, & pastinya enkripsi dari protokol HTTPS nggak ada gunanya di sini. Soalnya script tadi bakal didekripsi lagi di server, & kalo udah didekripsi ya…scriptnya kembali jadi script XSS atau SQL injection lagi. HTTPS nggak ngelakuin filter untuk script-script begini, serangan semacem ini perlu ditangani pake cara lain.

Continue reading

Cegah SQL Injection & XSS di Website

Kemarin-kemarin ini gw udah sempet ngebahas tentang cara ngelakuin SQL injection & XSS di website orang. Tapi nggak semua website orang bisa kena SQL injection & XSS. Nah, gimana caranya banyak website bisa kebal SQL injection & XSS? Berhubung SQL injection & XSS ini masalahnya dateng dari input yang dikirim user buat diproses, cara ngatasinnya ya kita harus ngefilter input dari user. Kalo ada input dari user yang ternyata perintah SQL buat ngelakuin SQL injection atau script untuk XSS, inputan itu harus diubah dulu jadi inputan teks biasa yang nggak berbahaya buat sistem.

Karena gw bikin website cuma bisa pake PHP (sebenernya dulu sempet pake ColdFusion waktu ngantor, tapi udah lama nggak pake terus lupa), gw kasih tau cara untuk ngefilter input dari user itu di PHP. Tapi di bahasa-bahasa lain juga seharusnya caranya nggak beda terlalu jauh sih.

Ngomong-ngomong di PHP versi 5.3 ada fitur yang namanya Magic Quotes yang kalo diaktifin udah otomatis bisa nangkal SQL injection, tapi fitur ini dihapus di PHP versi selanjutnya. Jadi gw nyaranin sih buat nangkal SQL injection kita pake function addslashes() aja.

Continue reading

Sedikit Tentang Cross-Site Scripting

Cross-site scripting (biasa disingkat XSS) termasuk teknik yang lumayan kepake buat ngehack website orang. Tapi sama kasusnya kayak SQL injection, XSS udah mulai kurang efektif. Soalnya website sekarang udah banyak yang celah buat ngelakuin XSSnya ditutup. Tapi ya…pasti ada lah yang masih bisa kena. Soalnya dua-duanya pernah gw lakuin & itu masih belum terlalu lama dari waktu postingan ini ditulis.

Inti dari XSS sih gimana caranya kita nyisipin script HTML, JavaScript, atau apa aja ke dalam satu halaman web. Gw punya satu website tempat gw testing script, untuk testing XSS bisa dicoba klik di sini.

Di halaman itu ada text box untuk masukin keyword. Kalau kita tekan tombol “Search”, ceritanya website ini bakal nyari sesuatu berdasarkan keyword yang diinput tadi. Tapi website ini sih bakal selalu nampilin notifikasi kalo nggak ada data yang sesuai dengan keyword yang dicari, soalnya gw nggak bikin program buat nyarinya & datanya juga emang nggak ada.

Continue reading