Välimuistiin tallennettu luokitus säästää yhden haun ja jäädyttää eilisen mielipiteen tämän päivän päätökseen. Todellinen vertailu ei ole välimuisti välimuistittomuutta vastaan: se on havainto, sen tuoreus ja vastaus, jonka sivustosi valitsi. Menetä näiden kolmen välinen raja ja optimointi alkaa tehdä politiikkaa itsenäisesti. Korjaus on kirjanpitoa, ei parempi syöte.

Kolme tietuetta ja kolme eri kelloa

Havainto on kenttä, jonka sait, syöte, josta se tuli, ja sen takana oleva tietojoukon versio. Tuoreus on välimuistitietueen ominaisuus: milloin haku suoritettiin, milloin tietueeseen lakataan luottamasta ja palauttiko viimeisin päivitys jotain. Vastaus on se, mitä sivustosi tekee sen suhteen tälle pyynnölle, tälle tilille tai tälle toiminnolle. Ne tuottavat eri omistajat ja ne heikkenevät eri nopeuksilla, siksi yksi rivi nimeltä blocked tuhoaa erottelun.

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

Kaksi kelloa ansaitsee erityistä huomiota. Hetki, jolloin hakusi suoritettiin, ei ole hetki, jolloin tarjoaja julkaisi tietojoukon, ja myöhemmin riviä lukevan operaattorin on tiedettävä, kummasta kahdesta kukin arvo tuli. Aseta vanheneminen ja päivitys syötteen dokumentoidun päivitysmallin ja väärässä olemisen hinnan mukaan, ei koskaan toiselta sivustolta lainatun luvun mukaan.

Pidä kenttä, älä tuomiota

MaxMindin anonyymien IP-osoitteiden dokumentaatio on yksi konkreettinen esimerkki syötteestä, joka erottaa anonyymin VPN:n, hosting-palveluntarjoajan, julkisen välityspalvelimen ja Tor-poistumisen erillisiin kenttiin. Se dokumentoi myös, että rekisteröimätön VPN-aliverkko voi sen sijaan näkyä hosting-lipun alla. Sen litistäminen yhdeksi boolean-arvoksi heittää pois ainoan osan, jota operaattori voisi myöhemmin auditoida.

Kumpikaan päättelysuunta ei ole turvallinen. Hosting-merkintä ei todista, että tunnelia käytettiin, eikä VPN-lipun puuttuminen todista, ettei asiakkaan ja palvelusi välissä ollut mitään. Ne ovat kaksi eri väitettä, eikä yksi boolean voi ilmaista kumpaakaan.

Sido tietue osoitteeseen, jonka varmensit

Käänteisen välityspalvelimen takana sovelluksen on käytettävä käyttöönoton hyväksymää asiakasosoitteen käsittelyä. Kutsujan toimittama edelleenvälitysotsake ei saa koskaan pystyä valitsemaan jonkun toisen välimuistiin tallennettua mainetta.

Tämä vika on sekä oikeellisuus- että tietoturvavirhe, koska otsaketta hallitseva hyökkääjä voi periä luotetun tietueen tai kiinnittää uhrin huonoon. Johda avain yhteydestä, jonka oma infrastruktuurisi päätti, ja kirjaa, mitä johtamista käytettiin. Kun edessä on useita välityspalvelimia, dokumentoi ketju sen sijaan, että luottaisit ensimmäiseen uskottavalta näyttävään otsakkeeseen. Jos ketju on monitulkintainen, kirjaa johdettu avain ja hylkäämäsi otsake, koska jälkimmäistä tapahtuman jälkitarkastus kysyy.

Ei todisteita ei ole puhdas tulos

Aikakatkaisu, virheellinen vastaus ja käyttämättömissä oleva tietokanta merkitsevät kukin jotain muuta kuin onnistunut haku, joka ei osunut mihinkään. Esitä ne erillisinä tuloksina ja päätä etukäteen, mitä suojattu toiminto tekee, kun todisteita ei ole lainkaan. Vain luku -sivu ja kirjautuneen tilin toiminto voivat perustellusti noudattaa siellä eri sääntöjä.

Normaalin todennuksen säilyttäminen tai tuetun vahvistuksen pyytäminen on yleensä parempi vastaus kuin kohdella katkosta yleisenä lupana tai koko sivuston kieltona. Rajaa, kuinka kauan haku saa kestää, ja pysäytä päivitysmyrskyt millä tahansa mekanismilla, jota integraatio tukee. Kun katkoksen aikana käytetään vanhentunutta arvoa, merkitse se vanhentuneeksi päätöskohdassa ja tee päivityksen viimeisin epäonnistuminen näkyväksi, jotta pitkäkestoinen vika ei voi mennä terveenä tietueena. Mikä valinta tahansa, kirjoita se sinne, missä politiikkaa valvotaan, ei haun viereiseen kommenttiin.

Säilyttäminen kuuluu samaan päätökseen: pidä kentät, jotka tämä toiminto tarvitsee, ja niiden takana oleva tarkastusjälki, ei enempää. IP-välimuistin ei tarvitse muuttua selaushistoriaksi.

Hyväksy neljä tapausta, mukaan lukien korjaus

Testaa tuore tulos, vanhentunut tulos, epäonnistunut haku ja luokitus, joka korjattiin myöhemmin. Jokainen harjoittaa eri haaraa, ja vain viimeinen näyttää, voidaanko virheellinen rajoitus peruuttaa.

Varmista sitten, että tavallisella käyttäjällä on reitti pyytää tarkastusta väärän eston jälkeen, koska syöte on joskus väärässä ja jono on osa suunnittelua. Kirjoita neljä tapausta runbookiin politiikan omistajan nimen viereen. Suunnittelu ansaitsee paikkansa, kun se poistaa tarpeettomat haut pitäen epävarmuuden ehjänä ja päätöksen näkyvästi ihmisen hallussa.

Aiheeseen liittyvät artikkelit