Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kaip SQL injekcijos tarpinės programinės įrangos paketas veikia „Laravel“


Kaip SQL injekcijos tarpinės programinės įrangos paketas veikia „Laravel“


„SQL Injection“ tarpinės programinės įrangos paketas „Laravel“ veikia perėmus gaunamas HTTP užklausas ir apžiūrėdamas įvesties duomenis, kad būtų galima aptikti ir užkirsti kelią SQL injekcijų atakoms, kol jie nepasiekia programos logikos ar duomenų bazės sluoksnio. Čia yra išsamus paaiškinimas, kaip veikia tokia tarpinė programinė įranga:

Pagrindinė funkcija

- Tarpinė programinė įranga veikia kaip HTTP užklausos duomenų filtras, įskaitant užklausos parametrus, formos įvestis ir kitus vartotojo pateiktus duomenis.
- Tai patvirtina ir dezinfekuoja šias įvestis, kad įsitikintų, jog juose nėra kenkėjiško SQL kodo ar modelių, kurie galėtų būti naudojami manipuliuoti SQL užklausomis.
- Anksčiau dezinfekuojant įvestis, jis neleidžia nesaugiems duomenims perduoti į neapdorotus SQL užklausas ar užklausų statytojus, kurie gali būti pažeidžiami injekcijos.

Techniniai mechanizmai

-Tarpinė programinė įranga paprastai nuskaito įtartinų simbolių ar SQL raktinių žodžių įvesties eilutes, kurios paprastai naudojamos injekcijų atakose, tokiose kaip „` `,`; `,`-“,„ Drop “,„ Select “ir kt.
- Tai gali ištrūkti arba pašalinti pavojingus simbolius arba atmesti užklausas, jei aptinkami kenkėjiški modeliai.
- Kai kurie tarpinės programinės įrangos paketai taip pat suteikia konfigūruojamą įtartinų įvesties registravimą, leidžiantį kūrėjams stebėti ir analizuoti galimus puolimo bandymus.
- Tarpinę programinę įrangą visame pasaulyje galima pritaikyti visais maršrutais arba pasirinktinai konkrečiuose maršrutuose, kuriems reikalinga papildoma apsauga.

Integracija į „Laravel“

- Paketas įdiegtas per kompozitorių ir sukonfigūruotas paskelbiant jo konfigūracijos failą.
- Tarpinė programinė įranga yra užregistruota „Laravel“ HTTP branduolyje visame pasaulyje arba kaip maršruto tarpinė programinė įranga.
- Užsiregistravęs, jis automatiškai apdoroja kiekvieną gaunamą užklausą arba per ją nukreiptą.
- Kūrėjai gali pritaikyti elgesį, tokį kaip registravimas, blokavimas ar strategijų dezinfekavimas per konfigūraciją.

Papildoma apsauga

- Be SQL injekcijos, kai kurie tarpinės programinės įrangos paketai taip pat apsaugo nuo LDAP injekcijos, dezinfekuojant įėjimus, naudojamus katalogų paslaugų užklausose.
- Tarpinė programinė įranga papildo „Laravel“ įmontuotą apsaugą, tokią kaip iškalbingas ORM ir užklausų kūrimo parametrų surišimas, kuris daugeliu atvejų automatiškai išvengia įėjimų.
- Tai ypač naudinga, kai naudojamos neapdorotos SQL užklausos ar neapdorotos išraiškos („Whereraw“, „SelecTraw“), kurios iš esmės yra rizikingesnės.

Naudojimo pavyzdys

-Įdiegę tarpinės programinės įrangos paketą (pvz., „Composer reikalauja apsaugoti/SQL-query-apsaugos“), paskelbsite „Config“ ir „Clear Cache“.
- Užregistruojate tarpinę programinę įrangą „App/http/brandel.php“ visame pasaulyje arba kaip maršruto tarpinė programa.
- Gaunamos užklausos, tada filtruokite tarpinę programinę įrangą, kuri dezinfekuoja įvestis ar blokuoja kenksmingus klausimus, kol jie pasiekia jūsų valdiklius ar duomenų bazės sluoksnį.

Apibendrinant galima pasakyti, kad SQL injekcijos tarpinės programinės įrangos paketas „Laravel“ veikia kaip iniciatyvus saugos sluoksnis, kuris tikrina ir dezinfekuoja vartotojo įvestis HTTP užklausos lygyje, kad būtų išvengta SQL injekcijų atakų. Tai pagerina „Laravel“ gimtąją apsaugą, nukreipdama į neapdorotus užklausas ir įtartinus įvesties modelius, užtikrinant konfigūruojamą registravimo ir blokavimo galimybes, kad būtų galima apsaugoti programą ir duomenų bazę [3] [4] [5].

Citatos:
[1] https://escape.tech/blog/laravel-sql injection-guide/
[2] https://www.stackhawk.com/blog/sql injection-prevention-laravel/
[3] https://github.com/aswinsasi/inentiction-protector
[4] https://gist.github.com/bewithdhanu/3ACD9a44c74e9f2696a5e41692fa89a3
[5] https://acquaintsoft.com/answers/what-is-sql injection-protection-in-laravel
[6] https://stackoverflow.com/questions/15778572/preventing-sql-innection-in-node-js
[7] https://cheatsheetseries.owasp.org/cheatsheets/laravel_cheat_sheet.html
[8] https://stackoverflow.com/questions/35439234/laravel-dependency-inant-in-middleware