Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 3928|Resposta: 3

[Fonte] O EF 6 executa instruções SQL nativas, problemas de injeção de parâmetros

[Copiar link]
Publicado em 14/06/2023 21:14:48 | | | |
Requisitos: O projeto usa o framework EF ORM para adicionar, excluir, modificar e verificar o banco de dados, mas diante de consultas complexas, pode não ser possível usar Linq e Lambda para consultas melhores, então precisamos usar EF 6 para executar instruções SQL nativas para consultas.

Consulta SQL Bruta (EF6):O login do hiperlink está visível.

Como as instruções SQL precisam carregar a condição where, o valor do parâmetro é passado pelo parâmetro URL.


Primeiro, nossa instrução SQL usa concatenação de strings para consulta, da seguinte forma:



O código é o seguinte:

Você pode ver as instruções SQL executadas pelo banco de dados da seguinte forma:

SELECT Name FROM [Classificação] ONDE Nome = 'Mobile Development'; selecione 1; --'

PassarA forma como as instruções SQL são emendadas corre risco de injeção

Modificamos o código para evitar ataques de injeção SQL parametrizando consultas, e o código é o seguinte:



exec sp_executesql N'SELECT Name FROM [Classificação] ONDE Nome = @n',N'@n nvarchar(17)', @n=N'Mobile Dev''; selecione 1; --'




Em vez de usar splicing diretamente, o EF Core converte isso em instruções SQL parametrizadas. As referências são as seguintes:

A EF Core Series (5) executa instruções SQL ou visualizações, procedimentos armazenados
https://www.itsvse.com/thread-9565-1-1.html

(Fim)





Anterior:Insight: Vi a assinatura de um blogueiro no jardim do blog
Próximo:Use a ferramenta de infiltração SQLMAP para testes de injeção SQL
 Senhorio| Publicado em 17/06/2023 11:11:50 |
Teste testes de injeção SQL com a ferramenta de infiltração SQLMAP
https://www.itsvse.com/thread-10611-1-1.html
 Senhorio| Publicado em 30/06/2023 20:47:17 |
Forma abreviada

 Senhorio| Publicado em 02/01/2025 12:10:38 |
[Combate real]. Gerador de consultas NET/C# SQL baseado em SQL
https://www.itsvse.com/thread-10370-1-1.html
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com