Požadavky: Projekt používá framework EF ORM k přidávání, mazání, úpravám a kontrolě databáze, ale při složitých dotazech nemusí být možné použít Linq a Lambda pro lepší dotazy, proto musíme použít EF 6 pro spouštění nativních SQL příkazů pro dotazování.
Raw SQL dotaz (EF6):Přihlášení k hypertextovému odkazu je viditelné.
Protože SQL příkazy musí nést podmínku kde, hodnota parametru je předávána přes URL parametr.
Nejprve náš SQL příkaz používá řetězení řetězců k dotazování, a to následovně:
Kód je následující:
SQL příkazy prováděné databází můžete vidět následovně:
VYBERTE název Z [klasifikace] KDE název = 'mobilní vývoj'; Vyberte 1; --' ProjítZpůsob, jakým jsou SQL příkazy spojeny, je ohrožen injekcí。
Kód jsme upravili tak, aby zabránil útokům SQL injekce, parametrizací dotazů, a kód je následující:
exec sp_executesql N'VYBER jméno Z [Klasifikace] KDE Jméno = @n',N'@n nvarchar(17)', @n=N'Mobile Dev''; Vyberte 1; --'
Místo přímého použití splicingu je EF Core převádí na parametrizované SQL příkazy. Reference jsou následující:
(Konec)
|