我正在尝试使用 ASP.NET API 构建一个容易受到 SQL 注入攻击(用于教育目的)的网站。为此,我想FromSql使用之前准备好的 SQL 查询进行调用,如下所示:
String query = "SELECT * FROM users WHERE email = '"+email
+"' AND password = '"+password+"'";
return RepositoryContext.Users.FromSql(query).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
但这段代码不会像FromSql预期的那样编译FormattableString,而不是 a String。我收到以下错误消息:
错误 CS1503 参数 2:无法从“string”转换为“System.FormattableString”
下面的代码可以编译,但是此代码将不再容易受到 SQL 注入的攻击,因为实体框架将执行准备好的 SQL 查询并将电子邮件和密码转换为 SQL 查询参数:
return RepositoryContext.Users.FromSql(
$"SELECT * FROM users WHERE email = {email}
AND password = {password}").FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
有没有办法将 a 转换String为 a FormattableString?
感谢您的帮助。