Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kādas ir izplatītās drošības kļūmes, ja to lieto, kad tiek ielādēts () grafikā


Kādas ir izplatītās drošības kļūmes, ja to lieto, kad tiek ielādēts () grafikā


Ja tiek izmantots “Kad tiek ielādēts ()` GraphQl, kas parasti ir metode, lai nosacīti saistītus datus vai asociācijas (piemēram, ORM balstītā GraphQL izšķirtspējā), var rasties vairākas kopīgas drošības nepilnības. Šīs nepilnības galvenokārt attiecas uz plašākiem grafikam drošības jautājumiem, bet ir īpaši svarīgi, jo "kad tiek ielādēti ()" bieži vien ir saistīti ar papildu ligzdotu vai ar to saistīto datu iegūšanu, palielinātu sarežģītību un risku.

parastās drošības nepilnības ar `, kad tiek ielādēts ()` grafql

** 1. Nekonsekventas vai trūkstošas ​​autorizācijas pārbaudes
`Kad tiek ielādēts ()` bieži izraisa ligzdotu vai saistītu datu ielādi pēc sākotnējā izšķirtspējas darbības. Ja autorizācijas loģika netiek konsekventi piemērota katrā izšķirtspējā vai datu ielādēšanas punktā (ieskaitot tos, kurus izraisa `, kad tiek ielādēti ()`), neatļauti lietotāji var piekļūt sensitīviem datiem. Šī ir izplatīta problēma, kurā daži ceļi uz tiem pašiem datiem tiek aizsargāti, bet citi (piemēram, tie, kas caur `kad tiek ielādēti ()`), nav, ļaujot uzbrucējiem apiet piekļuves kontroli [4] [6]. Atļauja jāīsteno gan vaicājuma līmenī, gan visos ligzdotajos izšķirtspējas vai datu iekrāvēju ietvaros.

** 2. Pārmērīgi atnākšana un sarežģīti jautājumi, kas noved pie dienesta noliegšanas (DOS)
Izmantojot `Kad ielādēts ()` var izraisīt dziļi ligzdotus vaicājumus, kas ienes lielu daudzumu saistīto datu. Uzbrucēji to var izmantot, izstrādājot vaicājumus, kas izraisa pārmērīgu datu iekraušanu un apstrādi, izraisot resursu izsīkumu un DOS. GraphQl spēja atnest vairākus saistītus objektus vienā vaicājumā padara to izaicinošu paredzēt resursu izmantošanu, un `Kad ielādēts ()` to var saasināt, nosacīti ielādējot papildu datus [4] [5]. Mitigācijas ietver vaicājuma dziļuma ierobežošanu, sarežģītības vērtēšanu un ātrumu ierobežošanu.

** 3. Sensitīvu datu iedarbība, izmantojot nepareizu lauka izvēli
Ja `kad tiek ielādēts ()` ielādē saistītos datus, bez rūpīgas kontroles pār to, kuri lauki ir pakļauti, grafika atbildē var netīšām atgriezties sensitīva informācija, piemēram, paroles, žetoni vai privāta lietotāja informācija [5]. Šis risks ir paaugstināts, ja trūkst autorizācijas pārbaudes vai ja kļūdu ziņojumi noplūdes sensitīva informācija. Izstrādātājiem ir jānodrošina, ka jutīgi lauki nekad netiek pakļauti, pat ja tiek ielādēti ligzdoti dati.

** 4. Injekcijas uzbrukumi, izmantojot nepareizu ievades validāciju
Kad "kad tiek ielādēts ()" ar dinamiskiem argumentiem vai filtriem, nepareiza ieejas validācija var izraisīt injekcijas ievainojamības, piemēram, grafikas vaicājuma iesmidzināšanu vai pat SQL injekciju, ja pamatā esošā datu ielāde nav pareizi parametrēta [6]. Uzbrucēji var ievadīt ļaunprātīgus jautājumus vai komandas, kas manipulē ar datiem, kas iegūst loģiku. Pareiza ievades validācija un parametrizētu vaicājumu izmantošana ir būtiska.

** 5. Apiet likmes ierobežošanu un brutālu spēku aizsardzību
Tā kā "kad tiek ielādēts ()" vienā vaicājumā var izraisīt vairākus ligzdotus datus, uzbrucēji to var izmantot, lai apietu tradicionālo likmju ierobežošanu. Piemēram, viņi var nosūtīt vienu sarežģītu vaicājumu, kas izraisa daudzus datus vai mutācijas, efektīvi veicot brutālu spēku vai uzskaitījumu uzbrukumus, neizraisot vienas pieprasījuma robežas [4] [7]. Likmju ierobežošanas stratēģijās jāapsver vaicājumu sarežģītība un ligzdotas operācijas.

** 6. Palielināta uzbrukuma virsma shēmas introspekcijas un instrumentu dēļ
Lietošana “Kad ielādēta ()` bieži atspoguļo sarežģītu shēmu ar vairākām ligzdotām attiecībām. Uzbrucēji var izmantot GraphQL introspekciju un tādus rīkus kā GraphiQL, lai atklātu šīs attiecības un amatniecības vaicājumus, kas izmanto "kad ielādēti ()", lai piekļūtu neparedzētiem datiem [1] [8]. Introspekcijas atspējošana ražošanā vai ierobežo to ar pilnvarotiem lietotājiem var samazināt šo risku.

kopsavilkums

Galvenās drošības nepilnības, lietojot `, kad tiek ielādēts ()` grafiks, griežas apkārt:

- Neizdarot konsekventu atļauju visiem ligzdotajiem datu ielādes ceļiem.
- Ļaujot pārāk sarežģītiem vai dziļiem jautājumiem, kas izraisa DOS.
- Sensitīvu datu pakļaušana caur ligzdotiem laukiem.
- Nepietiekama ievades validācija, kas izraisa injekcijas uzbrukumus.
- Apdošanas ātruma ierobežojumi sarežģītu ligzdotu vaicājumu dēļ.
- Palielināta iedarbība shēmas introspekcijas un instrumentu dēļ.

Mitigācijas ietver stingras autorizācijas pārbaudes katrā izšķirtspējā, vaicājumu sarežģītībā un dziļumā, stingrā ieejas validācija, rūpīga shēmas projektēšana, introspekcijas atspējošana ražošanā un visaptveroša ātruma ierobežošana, kas pielāgota GraphQl vaicājuma struktūrai [3] [4] [5] [6] [8].

Atsauces:
[1] https://portswigger.net/web-security/graphql
[2] https://www.imperva.com/blog/graphql-vulnerability-common-attacks/
[3] https://tyk.io/blog/graphql-security-7-common-vulner;
[4] https://www.brightsec.com/blog/graphql-security/
[5] https://blog.convisoappsec.com/en/security-in-graphql/
[6] https://wundergraph.com/blog/the_complete_graphql_security_guide_fixing_the_13_most_common_graphql_vulner;
[7] https://beagleSecurity.com/blog/article/graphql-attacks-vulnerability.html
[8] https://www.fastly.com/blog/exploring-the-security-implications-of--graphql