向原始 SQL 查询引入任何用户提供的值时,必须注意防范 SQL 注入攻击。 除了验证确保此类值不包含无效字符,请始终使用会将值与 SQL 文本分开发送的参数化处理。
具体而言,如果连接和内插的字符串 (
$""
) 带有用户提供的未经验证的值,则切勿将其传递到
FromSqlRaw
或
ExecuteSqlRaw
。 通过
FromSqlInterpolated
和
ExecuteSqlInterpolated
方法,可采用一种能抵御 SQL 注入攻击的方式使用字符串内插语法。
//var vv = await _context.SysRouteDetails.FromSqlInterpolated($"select * from SysRouteDetails").Where(x=> x.SysRouteId == RouteName).ToListAsync();
var vv = await _context.SysRouteDetails.FromSqlInterpolated($"select * from SysRouteDetails where SysRouteId = {RouteName}").ToListAsync();
记录一下,以上两种方式都是安全的
版权声明:本文为qq61394323原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。