Comecei agora o módulo 2 mas fiquei com uma pulga atrás da orelha... Codando em laravel por si só já faz, de algum modo, um formulário que não seja possível fazer um SQL Injection? Ou preciso escapar as strings ?
Comecei agora o módulo 2 mas fiquei com uma pulga atrás da orelha... Codando em laravel por si só já faz, de algum modo, um formulário que não seja possível fazer um SQL Injection? Ou preciso escapar as strings ?
Nicolas, Tudo bem contigo?
O Laravel vai trabalhar com o ORM Eloquent e o QueryBuilder. Na sua maioria as queries serão protegidas pela aplicação Laravel por default.
Por exemplo uma query como:
Produto::where('categoria_id', $request->get('categoriaId'))->get();
Já estão atuomaticamente protegidas, porque debaixo dos panos o Laravel já vai traduzir este código em um prepared statement e executar.
Entretanto, existem situações em que esta proteção não existe como por exemplo, se você permitir que o usuário faça um orderBy baseado num parametro que deve ser um nome de coluna de sua tabela, ou seja o usuário informa este valor. Neste caso é importante validar esta entrada.
Outra situação em que deve ficar atento é se você utilizar Raw Expressions: https://laravel.com/docs/8.x/queries#raw-expressions
Conforme você avançar no uso do Laravel vale a pena estudar a documentação e procure especificamente sobre SQL Injection, vai encontrar alertas quando for pertintente.
Espero ter ajudado um pouco. Bons estudos!