Практыкаванне па рэцэнзаванні кода · 8 хв

Праверце змену, згенераваную AI

Вывучыце кароткі endpoint. Вырашыце, якія доказы патрэбныя перад прыёмкай змены.

Сітуацыя

AI-памочнік прапануе endpoint рахункаў на аплату. Карыстальнік, які ўвайшоў у сістэму, павінен бачыць толькі рахункі сваёй арганізацыі. Вы правяраеце змену перад выпускам.

Што рабіць

  1. Прачытайце код і яго тлумачэнне простай мовай. Запускаць яго не трэба.
  2. Выберыце ўсе праверкі, патрэбныя перад прыёмкай. Праверце адказы, прачытайце прычыны і паўтарыце спробу, калі не хапае праверкі.
Патрэбны асновы? Прачытайце ўрок

Вы рэцэнзуеце гэты PR. Функцыя павінна вяртаць рахунак на аплату толькі аўтэнтыфікаванаму карыстальніку той самай арганізацыі. Фрагмент няпоўны.

// 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);
});
Што робіць код?

Endpoint бярэ з запыту ідэнтыфікатар рахунку на аплату, атрымлівае гэты рахунак, запісвае яго цалкам у журнал і вяртае. Фрагмент не паказвае, хто правярае права карыстальніка на гэты рахунак.

Аўтэнтыфікацыя правярае, хто карыстальнік. Аўтарызацыя правярае, што карыстальнік можа рабіць. Middleware — код, які апрацоўвае запыт перад гэтым endpoint. Ён можа ўтрымліваць праверкі, адсутныя ў фрагменце.

Выберыце ўсе неабходныя дзеянні праверкі.

ДЛЯ ЗАВЯРШЭННЯ

Ці даказвае паспяховы запыт бяспеку endpoint рахункаў на аплату?

Параўнайце свой адказ з тлумачэннем

Не. Ён даказвае, што адзін запыт спрацаваў. Таксама патрэбныя доказы таго, што карыстальнік не можа прачытаць рахунак іншай арганізацыі. Праверце поўны шлях запыту, паводзіны пры адсутным запісе і журналяванне. Паспяховы тэст павінен ахопліваць важнае патрабаванне.

Выкарыстайце гэта ў працы

У наступнай рэцэнзіі PR дадайце адзін тэст дзеяння, якое павінна быць забаронена.

Выбраць іншае практыкаванне