A SPATIE csomag a LARACEL-hez segíti az SQL injekciót elsősorban a biztonságos lekérdezés-építési módszerek és a szűrő mechanizmusok használatával, amelyek elkerülik a felhasználói bemenet közvetlenül beágyazását a nyers SQL lekérdezésekbe. A SPATIE csomag legfontosabb funkciói és funkciói, amelyek elősegítik az SQL injekció megelőzését, a következők:
- EngedélyezhetőFilters () módszer: Ez a funkció lehetővé teszi, hogy meghatározza, mely szűrők megengedettek egy lekérdezésen, amely hatékonyan az elfogadható lekérdezési paraméterekkel rendelkezik. Ha a szűrőket csak a kifejezetten megengedettre korlátozza, akkor megakadályozza a támadókat, hogy a rosszindulatú SQL -t váratlan vagy nem biztonságos lekérdezési paramétereken keresztül injektálják [2].
- A Laravel lekérdezés -építője és az ékesszóló ORM használata: A Spatie csomag kihasználja a Laravel lekérdezését és az ékesszóló ORM -et, amelyek belsőleg paraméterezett lekérdezéseket és elkészített nyilatkozatokat használnak. Ezek a mechanizmusok automatikusan paraméterekként kötik a felhasználói bemeneteket, ahelyett, hogy a nyers SQL karakterláncokba csatlakoznák őket, ezáltal megakadályozva az injekciós támadásokat [1] [4].
- A nem biztonságos nyers SQL funkciók elkerülése: A csomag ösztönzi a nyers SQL lekérdezések elkerülését, amelyek közvetlenül interpolálják a felhasználói bemenetet. Ehelyett elősegíti a biztonságos absztrakciók, például a szűrők és hatókörök használatát, amelyek fertőtlenítik és validálják a bemeneteket, mielőtt elérik a lekérdezési réteget [2] [3].
Összefoglalva: a Spatie csomag SQL befecskendezésének megelőzését segíti azáltal, hogy biztonságosabb domain-specifikus nyelvet (DSL) biztosít a szűréshez és a lekérdezéshez, amely a Laravel biztonságos lekérdezés-építőjére támaszkodik. Különleges funkciói, mint például a „Engedélyezők ()” súgó, a wellistista bemenetek, amelyek csak a biztonságos, validált paramétereket használják a lekérdezésekben, ezáltal hatékonyan enyhítve az SQL injekciós kockázatot [2].
Idézetek:
[1] https://escape.tech/blog/laravel-sql-injection-guide/
[2] https://www.reddit.com/r/laravel/comments/bbxhoc/unsafe_sql_functions_be_aware_of_your/
[3] https://stitcher.io/blog/unsafe-sql-functions-in-laravel
[4] https://www.kiuwan.com/blog/top-5-barts-practes-for-developers-on-preventing-sql-injects-atacks/
[5] https://www.baeldung.com/sql-injection
[6] https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-inject-in-php
[7] https://stackoverflow.com/questions/1862036/how-do-i-protect-this-function-sql-injection
[8] https://cheatsheetseries.owasp.org/cheatsheets/sql_injection_prevention_cheat_sheet.html