Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Pemrograman Web Aman: Input, Query, dan Hak Akses

Pelajaran 1 dari 14

Data masukan dan batas kepercayaan

Data dari klien dan batas kepercayaan

Setelah pelajaran ini kamu bisa menentukan nilai mana dari permintaan yang boleh dipakai, menghitung ulang harga dari katalog server, mengambil identitas dari sesi, dan menyalin hanya kolom yang diizinkan.

±14 menitDiperiksa 7 Okt 2026

Materi

Aplikasi web menerima permintaan dari peramban, aplikasi seluler, atau skrip siapa saja. Seluruh isi permintaan itu — kolom formulir, parameter di URL, kolom tersembunyi, cookie, header, dan badan JSON — berada di tangan pengirimnya. Batas kepercayaan adalah garis antara data yang dikendalikan pihak luar dan data yang dibuat atau disimpan server sendiri. Semua yang melintasi garis itu diperlakukan sebagai klaim, bukan fakta, sampai server memeriksanya.

Dua aturan turun dari sini. Pertama, nilai yang bisa dihitung atau dicari server sendiri tidak diambil dari permintaan: harga dibaca dari katalog, total disusun di server. Kedua, identitas pengguna datang dari sesi yang dibuat saat ia masuk, bukan dari kolom user_id di formulir. Kolom tersembunyi tetap bisa diubah pengirimnya, dan OWASP mencatat validasi JavaScript di peramban bisa dilewati, sehingga server memeriksa ulang semuanya.

MENU = {"NG01": 18000, "ES02": 6000}   # harga resmi kantin, milik server

def total_pesanan(permintaan):
    total = 0
    for baris in permintaan["baris"]:
        if baris["kode"] not in MENU:
            raise ValueError("menu tidak dikenal")
        total += MENU[baris["kode"]] * baris["jumlah"]   # bukan baris["harga"]
    return total

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Permintaan checkout dari aplikasi seluler toko berisi produk_id, jumlah, harga_satuan, dan pelanggan_id. Bagaimana server memperlakukan keempat nilai itu?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke