Kontrolujte kód vytvořený pomocí AI
DokončenoPřed přijetím změny prozkoumejte její skutečný obsah, hranice důvěry a důkazy.
Vydává TaigaJak píšeme
Ověřte si porozuměníEndpoint ověří přihlášení uživatele a potom načte záznam podle ID z požadavku. Co musíte ověřit?Vypracovat cvičení
Co se naučíte
- Posoudit chování a oprávnění před stylem.
- Najít chybějící autorizační kontrolu v malém příkladu.
- Oddělit vygenerované shrnutí od ověřených důkazů.
Čtěte požadavek před shrnutím
Začněte požadovaným chováním a akceptačními kritérii. Potom prozkoumejte skutečný diff. Shrnutí agenta může pomoci s orientací, ale může vynechat změny nebo nepřesně popsat kontroly.
Potvrďte kontrolovanou větev a commit. Vedle aplikačního kódu hledejte změny konfigurace, závislostí, infrastruktury a testů. Malá viditelná funkce může zahrnovat velkou změnu oprávnění nebo způsobu nasazování.
Nejdříve posuzujte chování s nejzávažnějšími následky. Formátování a názvy jsou důležité, ale nemají odvádět pozornost od chybějící hranice dat.
Sledujte identitu až k prostředku
Prozkoumejte tento neúplný fiktivní endpoint. Příklad ilustruje problém při kontrole; nejde o produkční kód.
async function getInvoice(request) {
const user = await requireSignedInUser(request);
return database.invoice.findById(request.params.id);
}
Funkce získá autentizovaného uživatele. Neukazuje rozhodnutí o oprávnění k faktuře. Kontrolující musí zjistit, zda toto rozhodnutí vynucuje jiná vrstva. Nepoužitá hodnota uživatele je důvodem k prozkoumání, sama o sobě však nedokazuje zneužitelnou chybu.
Sledujte požadavek skutečným systémem. Určete důvěryhodnou identitu uživatele a organizaci. Zkontrolujte, jak dotaz omezuje přístup k požadovanému záznamu. Prozkoumejte chování při chybách a testy zakázaných požadavků.
Nepředpokládejte, že skryté tlačítko chrání API. Volající může odeslat požadavek bez použití rozhraní. Nepředpokládejte, že platné ID záznamu uděluje přístup.
Ptejte se, který důkaz může změnu odmítnout
Úspěšný test může používat testovací účet správce nebo simulovanou autorizaci. Zkontrolujte, zda testuje důležitou hranici. Podle potřeby přidejte případ s jinou organizací a skutečným autorizačním postupem.
U změny uživatelského rozhraní prozkoumejte vykreslený výsledek. Ověřte ovládání klávesnicí, prázdné stavy, načítání a chyby. Kontrola typů neprokáže, že lze dialog používat klávesnicí.
U změny závislosti ověřte, proč je nutná. Posuďte verzi, licenci a bezpečnostní nálezy. Nepřijímejte nesouvisející aktualizaci jen proto, že ji agent při úkolu vytvořil.
Zachovejte nezávislost kontroly
Druhý model může odhalit užitečné problémy. Může také zopakovat předpoklady implementace. Kontrolujícímu dejte požadavek a diff. Nenapovídejte mu, že je změna už správná.
Požadujte, aby nálezy označovaly konkrétní způsob selhání a příslušný kód. Nepodložená varování berte jako otázky k prozkoumání. Sebejisté schválení berte jako další názor, dokud nejsou důležitá tvrzení podložena důkazy.
Lidská kontrola zůstává rozhodnutím o odpovědnosti. Kontrolující má změně rozumět natolik, aby vysvětlil její chování, rizika a ověření. Pokud je diff příliš velký, omezte rozsah nebo jej rozdělte na zkontrolovatelné změny.
Uzavřete kontrolu nad konečnou revizí
Po opravě znovu spusťte dotčené kontroly. Prověřte, zda oprava nevytváří nový problém. Zajistěte, aby se povinná kontrola podle pravidel repozitáře vztahovala na konečnou revizi.
Rozhodnutí o přijetí formulujte pomocí chování a důkazů. U zbývajících omezení uveďte odpovědnou osobu a další krok. Z nevyřešeného problému nedělejte tvrzení, že všechny kontroly prošly.
Před prozkoumáním skutečné změny si hledání chybějícího rozhodnutí procvičte ve cvičení kontroly kódu.
Vypracovat cvičení
Otevřete cvičení kontroly kódu v praktické laboratoři. Určete jednajícího uživatele, požadovaný prostředek a důvěryhodnou hranici organizace. Stejnou metodou pak prozkoumejte skutečný malý PR. Použijte pouze kód, který smíte kontrolovat.
Stáhnout pracovní list (Markdown)Zrušení této volby smaže veškerý postup uložený v tomto prohlížeči.
Postup zůstává v tomto prohlížeči. Bez účtu a sledování.