paint-brush
Zápach kódu 282 – Zlé predvolené nastavenia a ako ich opraviťpodľa@mcsee
679 čítania
679 čítania

Zápach kódu 282 – Zlé predvolené nastavenia a ako ich opraviť

podľa Maximiliano Contieri4m2024/12/02
Read on Terminal Reader

Príliš dlho; Čítať

Neznáme odpovede považovať za neoprávnené, nie za platné.
featured image - Zápach kódu 282 – Zlé predvolené nastavenia a ako ich opraviť
Maximiliano Contieri HackerNoon profile picture

Predvolené nastavenia vás môžu potopiť

TL;DR: Neznáme odpovede považovať za neoprávnené, nie za platné.

Problémy

  • Bezpečnostné riziká
  • Ignorovanie neznámych prípadov
  • Chyba Nesprávna interpretácia
  • Predvolené na platné stavy
  • Nesúlad oprávnení
  • Udalosti sa nedajú protokolovať
  • Využitie potenciálu

Riešenia

  1. Overte všetky odpovede na základe uzavretého súboru známych kódov.
  2. Predvolené (a neznáme) na neautorizované alebo Odstrániť predvolené .
  3. Zaznamenajte každý nezhodný alebo neočakávaný prípad na analýzu.
  4. Testujte s okrajovými scenármi.
  5. Pravidelne synchronizujte oblasti odpovedí s procesormi, aby ste sa vyhli zastaraným kódom.
  6. Zamerajte sa na bezpečnosť a urobte z neho proces posunu doľava.
  7. Navrhujte systémy s odolnosťou voči zmenám, aby ste zvládli vyvíjajúce sa scenáre.

Kontext

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.

Vzorový kód

Nesprávne

 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; }

Správne

 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; }

Detekcia

  • [x] Manuál

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.

Tagy

  • Bezpečnosť

úroveň

  • [x] Stredne pokročilý

Prečo je bijekcia dôležitá

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.

Generácia AI

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“.

Detekcia AI

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.

Vyskúšajte ich!

Pamätajte: Asistenti AI robia veľa chýb

Bez riadneho návodu

S konkrétnymi pokynmi

ChatGPT

ChatGPT

Claude

Claude

Zmätenosť

Zmätenosť

Druhý pilot

Druhý pilot

Blíženci

Blíženci

Záver

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.

Vzťahy

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

Vylúčenie zodpovednosti

Code Pachy sú môj názor .

Kredity

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.

Ako nájsť páchnuce časti kódu