O pacote Spatie for Laravel ajuda a prevenir a injeção de SQL principalmente através do uso de métodos seguros de construção de consultas e mecanismos de filtragem que evitam incorporar diretamente a entrada do usuário em consultas brutas de SQL. As principais funções e recursos no pacote Spatie que ajudam na prevenção da injeção de SQL incluem:
- Método permitidofilters (): Esta função permite especificar quais filtros são permitidos em uma consulta, efetivamente na lista de permissões de parâmetros de consulta aceitáveis. Ao restringir os filtros a apenas aqueles permitidos explicitamente, ele impede que os atacantes injetem SQL malicioso por meio de parâmetros de consulta inesperados ou inseguros [2].
- Uso do construtor de consultas de Laravel e eloquente ORM: o pacote Spatie aproveita o construtor de consultas do LaRavel e o eloquente ORM, que usam internamente consultas parametrizadas e declarações preparadas. Esses mecanismos ligam automaticamente as entradas do usuário como parâmetros, em vez de concatená -las em seqüências de sql brutas, impedindo assim ataques de injeção [1] [4].
- Evitar as funções SQL brutas inseguras: o pacote incentiva a evitar consultas SQL brutas que interpolam diretamente a entrada do usuário. Em vez disso, promove o uso de abstrações seguras, como filtros e escopos que higienizam e validam insumos antes de atingirem a camada de consulta [2] [3].
Em resumo, o pacote Spatie ajuda a prevenção da injeção de SQL, fornecendo uma linguagem mais segura específica de domínio (DSL) para filtragem e consulta que se baseia no construtor de consultas seguras da Laravel. Suas funções específicas como `permitidofilters ()` ajuda as entradas da lista de permissões, garantindo que apenas parâmetros validados e seguros sejam usados em consultas, mitigando os riscos de injeção de SQL efetivamente [2].
Citações:
[1] https://escape.tech/blog/laravel-sql-injection-guide/
[2] https://www.reddit.com/r/laravel/comments/bbxhoc/unsafe_sql_functions_be_aare_of_your/
[3] https://stitcher.io/blog/unsafe-sql-functions-in-laravel
[4] https://www.kiuwan.com/blog/top-5-best-practices-for-developers-on-preventing-sql-injections-attacks/
[5] https://www.baeldung.com/sql-injection
[6] https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php
[7] https://stackoverflow.com/questions/1862036/how-do-i-rotect-this-function-from-sql-injejection
[8] https://cheatsheetseries.owasp.org/cheatsheets/sql_injection_prevention_cheat_sheet.html