向 Ef Core SqlQuery 发送参数

问题描述 投票:0回答:1

使用 SQLQuery 发送这样的参数可以安全地防止 SQL 注入吗?

var page_param = new SqlParameter("page_param", page);
var pageSize_param = new SqlParameter("pageSize_param", pageSize);

var users = _context!.Database.SqlQuery<UserDTO>($"SELECT u.Id,u.FirstName,u.LastName,u.JoinDate,u.UserName,u.Email,u.EmailConfirmed,u.PhoneNumber,r.Name as Role FROM Users as u inner join UserRoles as ur on u.Id = ur.UserId inner join Roles r on ur.RoleId = r.Id order by u.JoinDate OFFSET {page_param} ROWS FETCH NEXT {pageSize_param} ROWS ONLY ");

编写安全的 SQL 查询

sql entity-framework-core dbcontext
1个回答
0
投票

来自SqlQuery-Remarks

的文档

您提供的任何参数值都将自动转换为 DbParameter。

所以,是的,它是安全的。您可以仅传递整数和字符串,而无需使用

SqlParameter

请注意,对于此类简单的查询,最好使用 LINQ。

© www.soinside.com 2019 - 2024. All rights reserved.