Latihan peninjauan kode · 8 MIN

Tinjau perubahan yang dihasilkan AI

Periksa endpoint singkat. Tentukan bukti yang diperlukan sebelum menerima perubahan.

Situasi

Asisten AI mengusulkan endpoint invoice. Pengguna yang sudah masuk hanya boleh melihat invoice dari organisasinya sendiri. Anda meninjau perubahan sebelum dapat dirilis.

Tindakan yang perlu dilakukan

  1. Baca kode dan penjelasannya dalam bahasa sederhana. Anda tidak perlu menjalankannya.
  2. Pilih setiap pemeriksaan yang diperlukan sebelum penerimaan. Periksa jawaban, baca alasan, dan coba lagi jika ada pemeriksaan yang belum dipilih.
Perlu latar belakang? Baca pelajaran

Anda meninjau PR ini. Fitur hanya boleh mengembalikan invoice kepada pengguna terautentikasi dalam organisasi yang sama. Potongan kode belum lengkap.

// Fictional, incomplete example. Do not deploy.
app.get('/invoices/:id', async (req, res) => {
  const invoice = await db.invoice.findUnique({
    where: { id: req.params.id }
  });
  console.log('Invoice response', invoice);
  return res.json(invoice);
});
Apa yang dilakukan kode?

Endpoint mengambil ID invoice dari permintaan, mengambil invoice tersebut, mencatat seluruh invoice dalam log, lalu mengembalikannya. Potongan kode tidak menunjukkan siapa yang memeriksa hak pengguna atas invoice ini.

Autentikasi memeriksa siapa pengguna. Otorisasi memeriksa tindakan yang boleh dilakukan pengguna. Middleware adalah kode yang memproses permintaan sebelum endpoint ini. Middleware dapat memuat pemeriksaan yang tidak ada dalam potongan ini.

Pilih semua tindakan peninjauan yang diperlukan.

UNTUK MENYELESAIKAN

Apakah permintaan yang berhasil membuktikan bahwa endpoint invoice aman?

Bandingkan jawaban Anda dengan penjelasan

Tidak. Itu membuktikan bahwa satu permintaan berfungsi. Anda juga memerlukan bukti bahwa pengguna tidak dapat membaca invoice organisasi lain. Periksa seluruh jalur permintaan, perilaku saat data tidak ditemukan, dan logging. Pengujian yang berhasil harus mencakup persyaratan yang penting.

Gunakan dalam pekerjaan

Dalam peninjauan PR berikutnya, tambahkan satu pengujian untuk tindakan yang harus ditolak.

Pilih latihan lain