Predvolené nastavenia vás môžu potopiť
TL;DR: Neznáme odpovede považovať za neoprávnené, nie za platné.
Dnes je deň počítačovej bezpečnosti a každý programátor musí uznať svoju zodpovednosť.
Predstavte si aplikáciu riadiacu predaj, ktorá sa pri spracovávaní transakcií spolieha na skupiny odpovedí od spracovateľov kreditných kariet.
Každý procesor kreditných kariet poskytuje preddefinované kódy odozvy pre rôzne situácie, ako je napríklad nedostatočný zostatok alebo expirovaná karta.
Problém začína, keď procesor pridá nový kód odpovede pre odmietnuté transakcie, ale neinformuje platformu.
Aplikácia nerozpozná nový kód, predvolene ho považuje za „nenájdený“ a autorizuje nákup.
Používatelia si všimnú túto chybu a využívajú ju na neoprávnené nákupy.
Príjmy platformy klesajú, čo vedie k bankrotu.
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; default: // Authorize purchase break; }
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "APPROVED": // Authorize purchase break; case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; case "DECLINED_NEW_REASON": // Handle new declined reason break; default: // Reject purchase (default case for unknown responses) break; }
Tento zápach môžete zistiť kontrolou logiky spracovania chýb.
Skontrolujte, či systém nezaznamenáva a nepopiera nerozpoznané prípady.
Automatizované testy môžu pomôcť identifikovať, či nové alebo neočakávané vstupy predvolia platné akcie.
Nástroje statickej analýzy môžu pomôcť tým, že označia potenciálne neúplné spracovanie chýb.
Je dôležité udržiavať individuálnu zhodu medzi internou reprezentáciou odpovedí platobného procesora vašej aplikácie a skutočnými kódmi vrátenými procesorom.
Keď porušíte Bijection , vytvoríte nesúlad.
Aplikácia nesprávne interpretuje neznáme kódy, čo vedie k neočakávanému správaniu, bezpečnostným dieram a potenciálne katastrofálnym obchodným dôsledkom.
Nástroje AI môžu vytvoriť tento zápach, ak nešpecifikujete, ako zaobchádzať s neznámymi prípadmi.
Napríklad všeobecné spracovanie chýb môže predvolene dosiahnuť neškodné výsledky ako „nenájdené“ alebo „úspech“.
Generátory AI dokážu tento zápach napraviť, keď im dáte pokyn, aby s neznámymi prípadmi zaobchádzali ako s neautorizovanými, a zdôraznite protokolovanie a testovanie neočakávaných scenárov.
Pamätajte: Asistenti AI robia veľa chýb
Bez riadneho návodu | S konkrétnymi pokynmi |
---|---|
Neznáme prípady riešte vždy opatrne.
Predvolené nastavenia ako „nenájdené“ môžu viesť k vážnym bezpečnostným problémom a finančným stratám.
Urobte protokolovanie a odmietnutie neznámych odpovedí súčasťou vašich postupov vývoja.
Pri programovaní robte rozhodnutia týkajúce sa bezpečnosti pri radení doľava.
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-viii-8mn3352
Code Pachy sú môj názor .
Foto: Nathana Rebouças na Unsplash
https://www.youtube.com/watch?v=J2QOejhA6ek
Domnienky sú matkou všetkých neúspechov.
Povedal Ouissal
Skvelé ponuky softvérového inžinierstva
Tento článok je súčasťou série CodeSmell.