Krav: Projektet bruger EF ORM-rammen til at tilføje, slette, ændre og tjekke databasen, men i lyset af komplekse forespørgsler er det måske ikke muligt at bruge Linq og Lambda til bedre forespørgsler, så vi er nødt til at bruge EF 6 til at udføre native SQL-sætninger til forespørgsler.
Rå SQL-forespørgsel (EF6):Hyperlink-login er synlig.
Da SQL-sætninger skal have where-betingelsen, sendes parameterværdien gennem URL-parameteren.
Først bruger vores SQL-sætning streng-sammenkædning til forespørgsler, som følger:
Koden er som følger:
Du kan se SQL-sætningerne, der udføres af databasen, som følger:
VÆLG NAVN FRA [Klassifikation] HVOR navn = 'Mobiludvikling'; vælg 1; --' PasMåden SQL-sætninger er splejset på, risikerer injektion。
Vi har modificeret koden for at forhindre SQL-injektionsangreb ved at parameterisere forespørgsler, og koden er som følger:
exec sp_executesql N'SELECT Name FROM [Classification] HVOR Name = @n',N'@n nvarchar(17)', @n=N'Mobile Dev''; vælg 1; --'
I stedet for direkte at bruge splicing, konverterer EF Core det til parameteriserede SQL-sætninger. Referencer er som følger:
(Slut)
|