Temuan Hari 3
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 6sampaiPraktik 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 keparahan
Section titled “Tingkat keparahan”| 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 |
Yang perlu ditindaklanjuti lebih dahulu
Section titled “Yang perlu ditindaklanjuti lebih dahulu”Tujuh butir ini berdampak paling besar, jadi sebaiknya dikerjakan lebih dahulu.
- Praktik 10.
verifyAccessTokendipanggil tanpa diimpor, sehingga setiap permintaan sesi melemparReferenceErroryang tertangkapcatch. Login tetap berhasil, jadi bug ini tidak terlihat kecuali ada yang memperhatikan tokennya terus diperbarui. - Praktik 11. Empat cacat pada blok HTTPS, dan keempatnya saling bergantung: tidak ada
locationACME,certbot-webroottidak di-mount, port 443 tidak dipublikasikan, dan berkas TLS berisi tiga directive lepas. - Praktik 11.
.env.exampledisuruh dibuat dan dipakai, tetapi tidak disertakan di folder latihan. - Praktik 9. Respons
createmengembalikan hash password, dan token diterima lewat query string. - Praktik 11.
VM_SAmemakai alamat@example.com, yang bukan bentuk alamat service account Google, sehingga Tahap 6 gagal. - Praktik 8.
GRANT EXECUTE ON FUNCTION ... TO PUBLICpada fungsi PostGIS. - Praktik 6.
katalog_data_2d.csvmemakai pemisah pipa.
Cara memeriksa ulang
Section titled “Cara memeriksa ulang”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:
cd code_reviewnode jalankan-semua.mjs