Uložte klasifikaci VPN do mezipaměti a nechte její stáří viditelné
Pozorování, jeho čerstvost a reakce vašeho webu stárnou různým tempem. Když zůstanou oddělené, uložená klasifikace zůstává poctivá v tom, co ví.
Uložená klasifikace ušetří jedno vyhledání a zamrazí včerejší názor do dnešního rozhodnutí. Skutečné srovnání není mezipaměť proti její nepřítomnosti: je to pozorování, jeho čerstvost a reakce, kterou si váš web zvolil. Ztratíte-li hranici mezi těmito třemi, optimalizace začne sama dělat politiku. Oprava je účtování, ne lepší kanál.
Tři záznamy se třemi různými hodinami
Pozorování je pole, které jste dostali, kanál, odkud přišlo, a verze datové sady, která za ním stojí. Čerstvost je vlastnost záznamu mezipaměti: kdy se vyhledání spustilo, kdy se záznamu přestane věřit a zda poslední obnovení něco vrátilo. Reakce je to, co váš web s tím dělá pro tento požadavek, tento účet nebo tuto akci. Vytvářejí je různí vlastníci a chátrají různým tempem, a proto jeden řádek nazvaný blocked ničí ten rozdíl.
| Record | Who owns it | How long it should live | Damage when it is folded into another row |
|---|---|---|---|
| The observation | the feed's operator | until a newer dataset version replaces it | a stale lookup becomes indistinguishable from a fresh one |
| Its freshness | the application | one request's tolerance for age | a failed refresh hides behind a cache hit |
| The response | whoever owns the site policy | until that policy is reviewed | a feed outage turns into an indefinite block |
Dvě hodiny si zaslouží zvláštní péči. Okamžik, kdy se vaše vyhledání spustilo, není okamžik, kdy poskytovatel zveřejnil datovou sadu, a operátor, který řádek později čte, musí vědět, ze kterých z těch dvou každá hodnota pochází. Nastavte expiraci a obnovení podle dokumentovaného modelu aktualizace kanálu a podle ceny chyby, nikdy podle čísla vypůjčeného z jiného webu.
Zachovejte pole, ne verdikt
Dokumentace MaxMind k anonymním IP adresám je jeden konkrétní příklad kanálu, který odděluje anonymní VPN, poskytovatele hostingu, veřejný proxy a výstup Tor do samostatných polí. Také dokumentuje, že neregistrovaná podsíť VPN se místo toho může objevit pod příznakem hostingu. Zploštění toho do jednoho booleanu zahazuje jedinou část, kterou by operátor mohl později auditovat.
Ani jeden směr odvození není bezpečný. Štítek hostingu neprokazuje, že byl použit tunel, a nepřítomnost příznaku VPN neprokazuje, že mezi klientem a vaší službou nic nestálo. To jsou dvě různá tvrzení a jediný boolean nemůže vyjádřit ani jedno z nich.
Přivažte záznam k adrese, kterou jste ověřili
Za reverzním proxy musí aplikace používat zpracování klientské adresy, které nasazení schválilo. Předávací hlavička poskytnutá volajícím nesmí nikdy moci vybrat cizí uloženou reputaci.
Tato porucha je zároveň chybou správnosti i bezpečnosti, protože útočník, který ovládá hlavičku, může zdědit důvěryhodný záznam nebo připoutat oběť ke špatnému. Odvozujte klíč ze spojení, které ukončila vaše vlastní infrastruktura, a zaznamenejte, které odvození bylo použito. Když je vpředu několik proxy, dokumentujte řetěz místo důvěry první hlavičce, která vypadá věrohodně. Je-li řetěz nejednoznačný, zaznamenejte odvozený klíč a hlavičku, kterou jste odmítli, protože právě na druhou se zeptá vyšetřování incidentu.
Žádný důkaz není čistý výsledek
Časový limit, deformovaná odpověď a nedostupná databáze znamenají každý něco jiného než úspěšné vyhledání, které nic neodpovídalo. Reprezentujte je jako samostatné výsledky a předem rozhodněte, co chráněná akce dělá, když není vůbec žádný důkaz. Stránka jen pro čtení a akce v přihlášeném účtu se tam mohou rozumně řídit jinými pravidly.
Zachovat běžné ověřování nebo požádat o podporované ověření je obvykle lepší odpověď než považovat výpadek za plošné povolení nebo za zákaz pro celý web. Ohraničte, jak dlouho smí vyhledání běžet, a zastavte bouře obnovování mechanismem, který integrace podporuje. Když se během výpadku použije zastaralá hodnota, označte ji jako zastaralou v místě rozhodnutí a zviditelněte poslední selhání obnovení, aby dlouhotrvající závada nemohla projít jako zdravý záznam. Ať je volba jakákoli, zapište ji tam, kde se politika vynucuje, ne do komentáře vedle vyhledání.
Uchovávání patří ke stejnému rozhodnutí: držte pole, která tato funkce potřebuje, a stopu po kontrole za nimi, nic víc. Mezipaměť IP adres se nemusí stát historií prohlížení.
Přijměte čtyři případy, včetně opravy
Otestujte čerstvý výsledek, propadlý výsledek, neúspěšné vyhledání a klasifikaci, která byla později opravena. Každý procvičuje jinou větev a jen poslední ukazuje, zda lze mylné omezení zrušit.
Pak potvrďte, že běžný uživatel má cestu požádat o kontrolu po chybném zablokování, protože kanál bude někdy chybný a fronta je součástí návrhu. Zapište čtyři případy do runbooku vedle jména vlastníka politiky. Návrh si zaslouží své místo, když odstraní nadbytečná vyhledání a přitom zachová nejistotu a rozhodnutí zůstane viditelně v rukou člověka.