Resurssit · 37

GraphQL-rajapinnan suojaaminen: valtuutus, kyselykustannukset ja todisteet

Objekti- ja kenttäoikeuksien, sidotun palvelimen työn ja testien hylkäyspolkujen valvonta.

Päivitetty · 2 min

Internet- ja teknologiakirjoja kirjaston hyllyssä Kuvitus · kuvitteellinen tilanne

Mitä tämä opas auttaa saavuttamaan

  • Paljastetun skeeman kartoittaminen
  • Oikeuksien käyttäminen
  • Sidotun kyselyn kustannukset
  • Hylkäysten tarkistaminen

Pikatarkistus

  • Voiko yksi tili lukea toisen tilin objektia?
  • Noudattaako arkaluonteinen kenttä päätilin käyttöoikeuspäätöstä?
  • Mitä syvyys, aliakset ja sivutus maksavat yhteensä?
  • Mitä tietoja vuotaa virheiden läpi?
  • Kuka havaitsee kieltoja ja väärinkäytöksiä?

Vaiheittainen menetelmä

  1. 1

    Inventointitoiminnot

    Listaa tyypit, kentät, mutaatiot, roolit, objektien omistajat ja arkaluontoiset tiedot. Sisällytä nykyiset asiakaskyselyt ja harvoin käytetyt polut.

    Tuotos: operaatio-, rooli-, objekti- ja kenttämatriisi.

  2. 2

    Testaa jokainen käyttöoikeuspäätös

    Luo erilliset testitilit ja vaihda objektitunnisteet, mukaan lukien sisäkkäiset objektit. Ratkaisijoiden on valvottava valtuutusta ennen tietojen palauttamista.

    Tuotos: toistettavissa olevat sallitut ja evätyt tapaukset.

  3. 3

    Sidotun palvelimen työ

    Mittaa kenttien ja kokoelmien todelliset kustannukset. Testaa syvyys, laajuus, aliakset, sivutus, eräajo ja aika yhdessä ja aseta sitten sopivat rajat.

    Tuotos: kustannuskäytäntö ja vastakkainasettelukyselyjoukko.

  4. 4

    Vähennä tarpeetonta altistumista

    Päätä kontekstin itsetutkiskelusta, piilota sisäiset virhetiedot ja poista kentät, jotka paljastavat enemmän kuin asiakkaat tarvitsevat.

    Tuotos: tarkistettu julkinen kokoonpano ja virhevastaukset.

  5. 5

    Tarkkaile maltillisesti

    Kirjaa hyödyllinen tekninen identiteetti, toiminta, kustannukset, estäminen ja korrelaatio jättäen pois salaisuudet ja arkaluontoiset argumentit. Määritä hälytyksen omistajuus.

    Tuotos: kojelauta ja tutkintamenettely.

  6. 6

    Toisto muutoksen jälkeen

    Kun kenttä, rooli tai asiakas muuttuu, toista valtuutus ja lataa tapaukset. Tarkista vanhat kyselyt, jotka nyt kulkevat muokatun graafin läpi.

    Tuotos: regressiotulos ja julkaisupäätös.

Johdon indikaattorit

IndikaattoriMitä se mittaaEnsimmäinen toimenpide
KäyttöoikeusObjekti- ja kenttätapaukset hylättiin odotetustiRatkaisijan korjaaminen
KustannuksetKäytännön rajoittama raskas kyselymääräKenttien ja rajoitusten säätäminen
VirheetJulkiset vastaukset ilman sisäisiä tietojaNähtävien tietojen vähentäminen
RegressioAsiakkaan toimintojen uudelleentoisto muutoksen jälkeenTahattomien rikkoutumisten estäminen

Yleisiä virheitä

  • Pelkän päätepisteen käytön luottaminen
  • Syvyyden rajoittaminen, mutta leveyden huomiotta jättäminen
  • Sisäkkäisten kenttien valtuutuksen unohtaminen
  • Argumenttien kirjaaminen arkaluonteisten tietojen kanssa

Usein kysytyt kysymykset

Poistaako GraphQL tavallisen API-valtuutuksen?

Ei. Jokainen objekti- ja kenttäkäyttö vaatii edelleen identiteettiin ja kontekstiin perustuvan päätöksen.

Riittääkö introspektion poistaminen käytöstä?

Ei. Se voi vähentää skeeman altistumista, mutta ei korjaa käyttö- tai kyselykustannuksia.

Riittääkö syvyysrajoitus?

Ei. Myös aliakset, leveys, listat ja kenttäkohtaiset kustannukset ovat tärkeitä.

Viralliset viitteet

Viitteet tukevat menetelmää. Sovita tarkastukset kontekstiisi; ne eivät ole sertifiointia. Alkuperäiset viitteiden otsikot ja lähdeasiakirjat voivat olla toisella kielellä.