„Laravel“ „Spatie“ paketas padeda išvengti SQL injekcijos pirmiausia pateikiant saugesnį ir išraiškingesnį duomenų bazių užklausų kūrimo būdą, sumažinant nesaugaus SQL naudojimo riziką. Pagrindinės „Spatie“ paketo, prisidedančio prie SQL injekcijų prevencijos, savybės:
- Domeno konkrečios kalbos (DSL) naudojimas filtravimui ir užklausoms: „Spatie“ siūlo švarią ir kontroliuojamą API filtrų ir pastatų užklausų taikymui, kuris skatina kūrėjus vengti neapdorotų ar dinaminių SQL eilučių. Šis DSL metodas padeda užtikrinti, kad būtų naudojami tik leidžiami filtrai ir parametrai, sumažinant injekcijos tikimybę per nepatikrintą įvestį [2].
- Integracija į „Laravel“ užklausų kūrimą ir iškalbingą ORM: Kadangi „Laravel“ pagrindinė užklausų kūrimo priemonė ir iškalbingi ORM naudoja paruoštus teiginius pagal numatytuosius nustatymus, „Spatie“ pasinaudoja juos saugiai surišti parametrus. Paruošti teiginiai Atskirkite SQL kodą nuo duomenų, neleidžiant vartotojo įvesties aiškinimui kaip vykdomosios SQL komandos [7].
- Leistų filtrų (baltojo sąrašo požiūris) skatinimas: „Spatie“ filtravimo sistema skatina tiksliai nurodant, kurie filtrai ir parametrai leidžiami, veiksmingai įgyvendinant leidimų sąrašą. Ši įvesties patvirtinimo strategija atmeta netikėtą ar kenkėjišką įvestį, kol ji pasiekia duomenų bazės sluoksnį, mažinant injekcijos riziką [2].
- Papildymas „Laravel“ įmontuotos saugos funkcijos: Nors pats „Laravel“ apsaugo nuo SQL injekcijos per parengtus teiginius ir įėjimo pabėgimą, „Spatie“ padidina tai pateikdama struktūrizuotus užklausų kūrimą ir filtravimo įrankius, kurie sumažina neapdorotų SQL ir rankinio įvesties sanitarijos poreikį [4] [7].
Apibendrinant galima pasakyti, kad „Spatie“ paketas padeda užkirsti kelią SQL injekcijai, siūlant saugesnį, deklaratyvų būdą sukurti užklausas su kontroliuojamu įvesties filtravimu, pasikliaujant paruoštais „Laravel“ teiginiais ir reklamuojant geriausią praktiką, pavyzdžiui, leidžiamus filtrus, kurie patvirtina ir riboja vartotojo įvestį prieš sąveikaudamas su duomenų baze. Šis sluoksniuotas požiūris sumažina kenkėjiško SQL kodo švirkštimo riziką.
Citatos:
[1] https://escape.tech/blog/laravel-sql injection-guide/
[2] https://www.reddit.com/r/laravel/comments/bbxhoc/unsafe_sql_funkctions_be_aware_of_your/
[3] https://stitcher.io/blog/unsafe-sql-functions-in-laravel
[4] https://acquaintsoft.com/answers/prevention-for-security-vulnerabilities-in-laravel
[5] https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-innection-in-php
[6] https://www.baLdung.com/sql injection
[7] https://magecomp.com/blog/enhancing-web-application-security-with-laravels-built-in-features/
[8] https://learn.g2.com/sql injection
[9] https://stackoverflow.com/questions/1862036/how-do--ri-protect-this-function-from-sql innection
[10] https://cheatsheetseries.owasp.org/cheatsheets/SQL_INENTIME_PREVENTION_CHEAT_SHEET.HTML
[11] https://www.varonis.com/blog/sql injection-dentifice-and-prevention-part-1