Spatie pakete Laravel palīdz novērst SQL iesmidzināšanu galvenokārt, izmantojot drošas vaicājumu veidošanas metodes un filtrēšanas mehānismus, kas izvairās no tieša lietotāja ievades iegulšanas neapstrādātos SQL vaicājumos. Galvenās funkcijas un funkcijas Spatie paketē, kas palīdz novērst SQL injekciju, ietver:
- Atļautsfiltera () metode: Šī funkcija ļauj jums norādīt, kuri filtri ir atļauti uz vaicājuma, efektīvi uz baltu saraksta pieņemamiem vaicājuma parametriem. Ierobežojot filtrus tikai ar tiem, kas skaidri atļauti, tas neļauj uzbrucējiem ievadīt ļaunprātīgu SQL, izmantojot negaidītus vai nedrošus vaicājuma parametrus [2].
- Laravela vaicājumu veidotāja un daiļrunīga ORM izmantošana: Spatie pakete izmanto Laravela vaicājumu veidotāju un daiļrunīgu ORM, kas iekšēji izmanto parametrizētus vaicājumus un sagatavotus paziņojumus. Šie mehānismi automātiski saista lietotāja ieejas kā parametrus, nevis savieno tos neapstrādātās SQL virknēs, tādējādi novēršot injekcijas uzbrukumus [1] [4].
- Izvairīšanās no nedrošām neapstrādātām SQL funkcijām: pakete mudina izvairīties no neapstrādātiem SQL vaicājumiem, kas tieši interpolē lietotāja ievadi. Tā vietā tas reklamē drošas abstrakcijas, piemēram, filtrus un jomas, kas sanitizē un apstiprina ieejas, pirms tās sasniedz vaicājuma slāni [2] [3].
Rezumējot, Spatie pakete palīdz SQL injekcijas profilaksei, nodrošinot drošāku domēnam specifisku valodu (DSL) filtrēšanai un vaicāšanai, kas balstās uz Laravel drošu vaicājumu veidotāju. Tās īpašās funkcijas, piemēram, `atļautsFilter ()` Palīdzība balto saraksta ieejām, nodrošinot, ka vaicājumos tiek izmantoti tikai droši, apstiprināti parametri, tādējādi efektīvi mazinot SQL injekcijas riskus [2].
Atsauces:
[1] https://escape.tech/blog/laravel-sqlinjekcijas-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-inavel
[4] https://www.kiuwan.com/blog/top-5-best-pracices
[5] https://www.baeldung.com/sql-injection
[6] https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injecti-in-php
[7] https://stackoverflow.com/questions/1862036/how-do-i-protect-this-function-from-sql-injection
[8] https://cheatsheetseries.owasp.org/cheatsheets/sql_injekcijas_prevention_cheat_sheet.html