Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 3928|Ответ: 3

[Источник] EF 6 выполняет нативные SQL-операторы, задачи инъекции параметров

[Скопировать ссылку]
Опубликовано 14.06.2023 21:14:48 | | | |
Требования: Проект использует фреймворк EF ORM для добавления, удаления, модификации и проверки базы данных, но из-за сложных запросов может быть невозможно использовать Linq и Lambda для более эффективных запросов, поэтому нам нужно использовать EF 6 для выполнения нативных SQL-операторов для запросов.

Необработанный SQL запрос (EF6):Вход по гиперссылке виден.

Поскольку SQL-операторы должны нести условие where, значение параметра передаётся через параметр URL.


Во-первых, наш SQL-оператор использует конкатенацию строк для запроса, следующим образом:



Код таков:

Вы можете увидеть SQL-операторы, выполняемые базой данных, следующим образом:

ВЫБРАТЬ Название ИЗ [классификация] ГДЕ Имя = 'мобильная разработка'; выберите 1; --'

ПроходитьСпособ сплавления SQL-операторов подвержен риску инъекции

Мы изменили код, чтобы предотвратить атаки SQL-инъекций, параметризировав запросы, и он выглядит следующим образом:



исполнительный sp_executesql N'SELECT Name FROM [Классификация] ГДЕ Имя = @n',N'@n nvarchar(17)', @n=N'Мобильный разработчик''; выберите 1; --'




Вместо прямого сплайсинга EF Core преобразует его в параметризованные SQL-операторы. Ссылки таковы:

EF Core Series (5) выполняет SQL-операторы или просмотры, хранящиеся процедуры
https://www.itsvse.com/thread-9565-1-1.html

(Конец)





Предыдущий:Инсайт: я увидел подпись блогера из блога
Следующий:Используйте инструмент инфильтрации SQLMAP для тестирования SQL injection
 Хозяин| Опубликовано 17.06.2023 11:11:50 |
Тестирование SQL-инъекций с помощью инструмента инфильтрации SQLMAP
https://www.itsvse.com/thread-10611-1-1.html
 Хозяин| Опубликовано 30.06.2023 20:47:17 |
Стенография

 Хозяин| Опубликовано 02.01.2025 12:10:38 |
[Настоящий бой]. NET/C# SQL-генератор запросов на основе sqlkata
https://www.itsvse.com/thread-10370-1-1.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com