Materi
Klinik Sehat Sentosa membuka portal untuk pasien, dokter, dan admin. Pasien masuk dengan surel dan kata sandi, membaca dan mengubah catatan kesehatannya sendiri, dan membatalkan janji temu. Admin boleh membatalkan janji siapa pun. Uji coba menemukan bahwa fungsi masuk memakai SHA-256 tanpa garam, catatan bisa diubah lewat id milik pasien lain, dan janji bisa dihapus siapa saja.
Fungsi masuk mencari pengguna dengan query berparameter, menghitung ulang PBKDF2 dari garam dan putaran tersimpan, lalu membandingkan dengan compare_digest. Surel yang tidak terdaftar dan kata sandi yang salah memberi hasil sama, None, supaya portal tidak membocorkan surel mana yang terdaftar. Setiap perubahan data memeriksa pemilik di dalam query yang sama, dan rowcount memberi tahu apakah ada baris yang memang berubah.
# Pola ubah-milik-sendiri di tabel lain: alamat pengiriman
cur = conn.execute("UPDATE alamat SET isi = ? WHERE id = ? AND pemilik_id = ?",
(isi_baru, alamat_id, sesi["user_id"]))
berhasil = cur.rowcount == 1