Lewati ke konten

Temuan Hari 3

InternalSebagian terujiArti badge ini

Hari 3 memuat tujuh praktik, dari pengelolaan database sampai deployment ke Google Cloud. Halaman ini mengumpulkan hasil pemeriksaan berkas latihan, kode, dan konfigurasi pada paket hari 3.

Sumber yang diperiksa:

  • Dokumen dan berkas latihan pada paket hari 3, folder Praktik 6 sampai Praktik 11
  • Berkas latihan yang menyertai tiap praktik

Skema yang berlaku: satu project dipakai beberapa peserta, role peserta sudah di-assign koordinator, setiap peserta wajib memakai slug, dan skema akhir memakai subdomain dari domain penyelenggara.

Praktik Isi Halaman
6 Tabel, import CSV, primary key dan foreign key Praktik 6: Database Non Spasial
7 Publikasi layer di GeoServer Praktik 7: GeoServer
8 Supabase, PostGIS, dan koneksi Prisma Praktik 8: Supabase dan Prisma
9 CRUD API users Praktik 9: CRUD API
10 Konfigurasi NextAuth Praktik 10: NextAuth
11 Deployment ke Google Cloud Praktik 11: Deployment GCP

Setiap halaman praktik memuat bagian Solusi di bawah temuannya. Cara menjalankan alat pemeriksa dan berkas perbaikan siap pakai ada di Alat Pemeriksa Hari 3.

Tingkat Artinya
Kritikal Membuat fitur tidak berfungsi, atau membocorkan data dan kredensial
Tinggi Berfungsi, tetapi salah secara keamanan atau merusak data
Sedang Menyulitkan, tidak konsisten, atau rawan menjadi bug
Rendah Kerapian dan konvensi
Praktik Kritikal Tinggi Sedang Rendah Inti masalah
6 1 2 3 2 Berkas .csv memakai pemisah pipa, skema tidak idempoten
7 0 2 2 1 Perintah pembuatan firewall tidak ada di materi
8 1 1 2 1 GRANT EXECUTE ke PUBLIC membuka fungsi ke peran anon
9 0 2 8 3 Token diterima lewat query string, hash password ikut di respons
10 1 1 2 1 verifyAccessToken dipanggil tanpa diimpor
11 4 4 9 3 Empat cacat pada blok HTTPS, ditambah berkas yang tidak disertakan

Tujuh butir ini berdampak paling besar, jadi sebaiknya dikerjakan lebih dahulu.

  1. Praktik 10. verifyAccessToken dipanggil tanpa diimpor, sehingga setiap permintaan sesi melempar ReferenceError yang tertangkap catch. Login tetap berhasil, jadi bug ini tidak terlihat kecuali ada yang memperhatikan tokennya terus diperbarui.
  2. Praktik 11. Empat cacat pada blok HTTPS, dan keempatnya saling bergantung: tidak ada location ACME, certbot-webroot tidak di-mount, port 443 tidak dipublikasikan, dan berkas TLS berisi tiga directive lepas.
  3. Praktik 11. .env.example disuruh dibuat dan dipakai, tetapi tidak disertakan di folder latihan.
  4. Praktik 9. Respons create mengembalikan hash password, dan token diterima lewat query string.
  5. Praktik 11. VM_SA memakai alamat @example.com, yang bukan bentuk alamat service account Google, sehingga Tahap 6 gagal.
  6. Praktik 8. GRANT EXECUTE ON FUNCTION ... TO PUBLIC pada fungsi PostGIS.
  7. Praktik 6. katalog_data_2d.csv memakai pemisah pipa.

Setiap butir di halaman praktik disertai berkas dan barisnya, sehingga bisa diperiksa langsung. Sebagian besar sudah punya alat pemeriksa yang bisa dijalankan ulang, dan solusinya ditulis di bawah temuan masing-masing.

Untuk menjalankan seluruh pemeriksa sekaligus:

Terminal window
cd code_review
node jalankan-semua.mjs