Uložená klasifikácia ušetrí jedno vyhľadanie a zamrazí včerajší názor do dnešného rozhodnutia. Skutočné porovnanie nie je vyrovnávacia pamäť proti jej absencii: je to pozorovanie, jeho čerstvosť a odpoveď, ktorú si zvolila vaša stránka. Stratíte hranicu medzi týmito tromi a optimalizácia začne sama robiť politiku. Oprava je účtovníctvo, nie lepší kanál.

Tri záznamy s tromi rôznymi hodinami

Pozorovanie je pole, ktoré ste dostali, kanál, odkiaľ prišlo, a verzia dátovej sady za ním. Čerstvosť je vlastnosť záznamu vyrovnávacej pamäte: kedy sa vyhľadanie spustilo, kedy sa záznamu prestane veriť a či posledné obnovenie niečo vrátilo. Odpoveď je to, čo vaša stránka s tým robí pre túto požiadavku, tento účet alebo túto akciu. Vytvárajú ich rôzni vlastníci a chátrajú rôznym tempom, a preto jeden riadok nazvaný blocked ničí ten rozdiel.

RecordWho owns itHow long it should liveDamage when it is folded into another row
The observationthe feed's operatoruntil a newer dataset version replaces ita stale lookup becomes indistinguishable from a fresh one
Its freshnessthe applicationone request's tolerance for agea failed refresh hides behind a cache hit
The responsewhoever owns the site policyuntil that policy is revieweda feed outage turns into an indefinite block

Dve hodiny si zaslúžia osobitnú starostlivosť. Okamih, keď sa vaše vyhľadanie spustilo, nie je okamih, keď poskytovateľ zverejnil dátovú sadu, a operátor, ktorý riadok neskôr číta, musí vedieť, z ktorých z tých dvoch každá hodnota pochádza. Nastavte expiráciu a obnovenie podľa dokumentovaného modelu aktualizácie kanála a podľa ceny chyby, nikdy podľa čísla požičaného z inej stránky.

Zachovajte pole, nie verdikt

Dokumentácia MaxMind k anonymným IP adresám je jeden konkrétny príklad kanála, ktorý oddeľuje anonymnú VPN, poskytovateľa hostingu, verejný proxy a výstup Tor do samostatných polí. Tiež dokumentuje, že neregistrovaná podsiet VPN sa namiesto toho môže objaviť pod príznakom hostingu. Sploštenie toho do jedného booleanu zahadzuje jedinú časť, ktorú by operátor mohol neskôr auditovať.

Ani jeden smer odvodenia nie je bezpečný. Štítok hostingu nepreukazuje, že bol použitý tunel, a neprítomnosť príznaku VPN nepreukazuje, že medzi klientom a vašou službou nič nestálo. To sú dve rôzne tvrdenia a jediný boolean nemôže vyjadriť ani jedno z nich.

Priviažte záznam k adrese, ktorú ste overili

Za reverzným proxy musí aplikácia používať spracovanie klientskej adresy, ktoré nasadenie schválilo. Preposielacia hlavička poskytnutá volajúcim nesmie nikdy môcť vybrať cudziu uloženú reputáciu.

Táto porucha je zároveň chybou správnosti aj bezpečnosti, pretože útočník, ktorý ovláda hlavičku, môže zdediť dôveryhodný záznam alebo pripútať obeť k zlému. Odvodzujte kľúč zo spojenia, ktoré ukončila vaša vlastná infraštruktúra, a zaznamenajte, ktoré odvodenie bolo použité. Keď je vpredu niekoľko proxy, dokumentujte reťaz namiesto dôvery prvej hlavičke, ktorá vyzerá vierohodne. Ak je reťaz nejednoznačná, zaznamenajte odvodený kľúč a hlavičku, ktorú ste odmietli, pretože práve na druhú sa bude pýtať vyšetrovanie incidentu.

Žiadny dôkaz nie je čistý výsledok

Časový limit, deformovaná odpoveď a nedostupná databáza znamenajú každý niečo iné než úspešné vyhľadanie, ktoré nič neodpovedalo. Reprezentujte ich ako samostatné výsledky a vopred rozhodnite, čo chránená akcia robí, keď nie je vôbec žiadny dôkaz. Stránka len na čítanie a akcia v prihlásenom účte sa tam môžu rozumne riadiť inými pravidlami.

Zachovanie bežného overovania alebo požiadanie o podporované overenie je zvyčajne lepšia odpoveď než považovať výpadok za plošné povolenie alebo za zákaz pre celú stránku. Ohraničte, ako dlho smie vyhľadanie bežať, a zastavte búrky obnovovania mechanizmom, ktorý integrácia podporuje. Keď sa počas výpadku použije zastaraná hodnota, označte ju ako zastaranú v mieste rozhodnutia a zviditeľnite posledné zlyhanie obnovenia, aby dlhotrvajúca porucha nemohla prejsť ako zdravý záznam. Nech je voľba akákoľvek, zapíšte ju tam, kde sa politika presadzuje, nie do komentára vedľa vyhľadania.

Uchovávanie patrí k tomu istému rozhodnutiu: držte polia, ktoré táto funkcia potrebuje, a stopu po kontrole za nimi, nič viac. Vyrovnávacia pamäť IP sa nemusí stať históriou prehliadania.

Prijmite štyri prípady, vrátane opravy

Otestujte čerstvý výsledok, prepadnutý výsledok, neúspešné vyhľadanie a klasifikáciu, ktorá bola neskôr opravená. Každý precvičuje inú vetvu a len posledný ukazuje, či možno mylné obmedzenie zrušiť.

Potom potvrďte, že bežný používateľ má cestu požiadať o kontrolu po chybnom zablokovaní, pretože kanál bude niekedy chybný a front je súčasťou návrhu. Zapíšte štyri prípady do runbooku vedľa mena vlastníka politiky. Návrh si zaslúži svoje miesto, keď odstráni nadbytočné vyhľadania a pritom zachová neistotu a rozhodnutie zostane viditeľne v rukách človeka.

Súvisiace články