Nõuded: Projekt kasutab EF ORM raamistikku andmebaasi lisamiseks, kustutamiseks, muutmiseks ja kontrollimiseks, kuid keeruliste päringute korral ei pruugi olla võimalik kasutada Linqi ja Lambdat paremate päringute jaoks, seega peame EF 6 kasutama natiivsete SQL-lausete täitmiseks päringute tegemiseks.
Raw SQL päring (EF6):Hüperlingi sisselogimine on nähtav.
Kuna SQL-laused peavad kandma tingimust where, suunatakse parameetri väärtus läbi URL-parameetri.
Esiteks kasutab meie SQL-lause stringide ühendamist päringute tegemiseks järgmiselt:
Kood on järgmine:
SQL-lauseid, mida andmebaasis täidetakse, näed järgmiselt:
VALI NIMI [Klassifikatsioon] KUS nimi = 'Mobiilne arendus'; vali 1; --' PassSQL-lausete lõikamise viis on süstimise ohus。
Me muutsime koodi, et vältida SQL-süstimise rünnakuid, parameetriseerides päringuid, ja kood on järgmine:
exec sp_executesql N'SELECT Name FROM [Klassifikatsioon] KUS nimi = @n',N'@n nvarchar(17)', @n=N'Mobile Dev''; vali 1; --'
EF Core ei kasuta otse splicingut, vaid teisendab selle parametriseeritud SQL-lauseteks. Viited on järgmised:
(Lõpp)
|